你如何使用jQuery以及像这样的PHP内联代码包含()的方式加载()?

时间:2012-12-19 18:24:24

标签: php javascript jquery html

在底部更新 我习惯使用涉及id或类的选择器,所以甚至不能确定这至少可以实现我正在考虑的功能。我有一个名为replist.html的单独文件,我以这样的一对一关系保存数据(35,000行的部分列表)......

'Illinois': 'joesmoe',
'Nevada': 'messytess',
<!-- start of new zip codes -->
'01001': 'julsguls',
'01002': 'julsguls',

我最初将文件拉到页面我正在使用带有include_once()的脚本,但现在我正在修改以改变移动设备及其处理位置检测(我将IP转换为zip)。由于性质,我希望通过PHP的客户端脚本访问数据。这是我到目前为止所拥有的......

<script>
...
<?php
if(!(($detect->isMobile()))) {  ?>
            var reps = {
            <?php include_once('repList.html'); ?>
            };
 <?php
}
else { ?>
    <!-- custom mobile location detection here --> 
    reps = {***would like to get load() here***}; 
<?php } ?>
...
</script>

...其他我想添加移动位置检测脚本,然后加载()我的repList.html文件。

我简化了else,只关注如何在那里获取load()。如果有人有更好的jQuery,其他JavaScript库或任何客户端解决方案我是开放的。我计划在此过程之前使用的脚本是客户端,为什么我不能像我一样使用PHP。

我相信我会保留PHP并继续......

var reps_load = {<?php include_once('repList.html'); ?>};

<?php
if(!(($detect->isMobile()))) {  ?>
    var reps = reps_load;
 <?php
}
else {
...

2 个答案:

答案 0 :(得分:0)

根据手册load()

  

从服务器加载数据并将返回的HTML放入匹配的   元件。

因此无法为您的javascript变量指定任何内容。

您可以json_encode数据服务器端,而是使用jQuery.getJSON(),将返回的值分配给回调函数中的变量。

但是你会调用另一个php文件来反过来读取你的数据并做好准备。

类似的东西:

else
{
?>
  <!-- custom mobile location detection here -->
  var reps;
  $.getJSON('script_that_returns_data_as_json.php', function(data) {
    reps = data;
    // you might need to process it to get it the form you want...
  });
<?php
}
?>

答案 1 :(得分:0)

此方法仅使用普通的javascript,但如果您的数据位于不同的域中,它甚至可以跨站点使用。 您可以在文件前面添加包含为JSON或javascript变量的数据

var script=document.createElement("script");
script.src="your_url.js"
var head = document.getElementsByTagName('head')[0]
head.insertBefore(script,head.firstChild)

然后您的数据文件可能类似于:

items=[
{"state":"Illinois","name":"joesmoe"},
{"zip":"01001", "value":"julsquls"}
];

可以通过以下方式访问:

for (var i=0;i<items.length;i++){
    if(items[i].state) /*state stuff*/;
    if(items[i].zip) /*zip stuff*/;
}