0

在底部更新我习惯于使用涉及 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 {
...
4

2 回答 2

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
}
?>
于 2012-12-19T18:29:49.967 回答
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*/;
}
于 2012-12-19T19:03:34.467 回答