【问题标题】:how to load php array into javascript variable on runtime如何在运行时将php数组加载到javascript变量中
【发布时间】:2014-04-22 10:22:01
【问题描述】:

我有一个网站/(移动设备,使用电话差距构建创建的应用程序),在这个网站上,我将一些带有 php 的数组加载到 javascript 中以显示一些广告。在网站上它工作得很好,但在移动应用程序(iOS 和 android)上我有一个空白空间。如果我直接在 js 中填充数组变量,它适用于所有版本的网站 web 和移动。

问题是我要展示大约 460 个不同的广告。我喜欢在用户启动或在 php 中加载网站/应用程序时将大约 20 个广告加载到 js 中。展示广告后,ads-couter +1 .(这里没有展示)

我这样做的原因是,因为我没有找到可以通过我的 html5 css3 查询网络应用获利的东西,该应用是用 phone gap build 编译的。

现在有人可以向我展示或解释为什么它可以在 web 上工作但不能在应用程序上工作,或者为什么当我直接在 js 中填充变量时它同时工作??

我的 php 工作正常 -> 到 js

在 js 中我有这个:

// werbung
function werbung_fill(){

     id =  new Array;
     comment_start = new Array;
     bannerLinks =  new Array;
     adBanners =  new Array;
     bannerTargets =  new Array;
     dimension =  new Array;
     comment_end =  new Array;
     aktiv =  new Array;
     angezeigt =  new Array;
     lasttime =  new Array;

               $.getJSON('inc/werbung_call.php', function(data) {
         /* data will hold the php array as a javascript object */
     $.each(data, function(key, val) {

     id.push(val.id);                   
     comment_start.push(val.comment_start);
     bannerLinks.push(val.bannerLinks);
     adBanners.push(val.adBanners);
     bannerTargets.push(val.bannerTargets);
     dimension.push(val.dimension);
     comment_end.push(val.comment_end);
     aktiv.push(val.aktiv);
     angezeigt.push(val.angezeigt);
     lasttime.push(val.lasttime);

            });
        });
}

function werbung(){

  var randNum     = Math.floor(Math.random() * (19 - 0 + 1)) + 0; 
  var topAdBanner = $('#topad > a > img');
  var newcomment_start = comment_start[randNum];
  var newBannerImg  = adBanners[randNum];
  var newBannerLink = bannerLinks[randNum];
  var newBannerTarget = bannerTargets[randNum];
  var newdimension = dimension[randNum];
    var newcomment_end = comment_end[randNum];

  // update new img src and link HREF value
    $(topAdBanner).attr('src',newBannerImg);
    $('#topad > a').attr('href',newBannerLink);
    $('#topad > a').attr('target',newBannerTarget);
    $('#topad > a').attr('alt',newdimension);

    var deinTimer = window.setTimeout(werbung, 5000);
    //$('#topad1').html(id[randNum]);
}

$(document).ready(function() { 
// werbungs banner
$('<div id="topad"><a href="" target=""><img src="" width="320" height="50" alt="" border="0"></a></div><!-- @end #topad -->').prependTo( $( "#hauptheader" ) );

// werbung
werbung_fill();
werbung();
// werbung

}

有了这个,我可以注入一个 div 而无需再次编译应用程序。 (效果很好)

js、php、index.html在同一台服务器上,编译出来的应用也使用服务器的js css图片。

【问题讨论】:

  • ** 没有人??可以帮助 ?? **

标签: php android jquery ios web-applications


【解决方案1】:

您的 JavaScript 中有一些语法错误。您应该在这里验证您的 JavaScript:http://www.jshint.com/

我怀疑 Android 没有正确解析这个:

id =  new Array;

建议改用这种语法:

var id =  [];

【讨论】:

  • 对不起,但它不会改变一些东西,id = [];等同于 id = new Array;和 var id = []; -> 数组只存在于该函数中。不过谢谢!
  • 不一定。 Android 可能要求您将新数组声明为id = new Array() 而不仅仅是id = new Array。我相信 Chrome 足够聪明,可以将两者识别为相同,但我怀疑 Android 可能无法解析这个?
猜你喜欢
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 2010-11-19
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多