0

下部の更新私はIDまたはクラスを含むセレクターの使用に慣れているため、少なくとも私が考えている機能でこれが可能かどうかさえわかりません。このような1対1の関係でデータを保持する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 ファイルをload()しようとしています。

そこで load() を取得する方法に集中するために、else を単純化しました。誰かがより優れた 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 に答える