3

PHP を使用してページにエコーするデータの配列があり、JQuery でそれを解析できるようにしたいと考えています。ただし、データが必ずしもユーザーに表示されるわけではありません。たとえば、次のようなものがあります。

<div id="data-1">
    <span id="width">5</span>
    <span id="height">10</span>
    <span id="depth">15</span>
</div>
<div id="data-2">
    <span id="width">10</span>
    <span id="height">20</span>
    <span id="depth">30</span>
</div>

この方法でデータをスパンに保存し、次に JQuery でデータをオンロードして非表示にし、後でスパン値を取得してデータを操作する必要があるかどうか疑問に思っています。

$(document).ready( function() {
    $("#width, #height, #depth").hide();
    $("#data-*").click(function() {
        var width = $("#width", $(this)).text();
        var height = $("#height", $(this)).text();
        var depth = $("#depth", $(this)).text();
    });
});

これは、ページにデータを格納する最も効率的な方法ですか? 代わりに非表示の入力を使用する必要がありますか、またはこれを行う他の方法はありますか?

4

5 に答える 5

7

PHP でデータをエコーする場合は、それをjson_encode()に渡します。これにより、jQuery でネイティブに読み取ることができる JavaScript オブジェクトが生成されます。リクエストが行われたときにこれをページの下部に挿入するか、AJAX を使用してオンザフライで取得できます。

PHP:

$my_data = array(
   'data1' => array(
      'width' => 16,
      'height' => 20
    ),
   'data2' => array(
      'width' => 16,
      'height' => 20
    )
);

# echo at bottom of page
echo '<script type="text/javascript">';
echo 'window.my_data = '.json_encode($my_data);
echo '</script>';

jQuery:

var height = window.my_data.data1.height
于 2009-05-22T18:42:04.440 に答える
0

多くの ajax ベースの回答が得られると思いますが、あなたのしていることは実際には ajax ではありません。サーバーがページを作成するときに使用できる値を書き出しています。Ajax は、そのデータを取得するためにサーバーにコールバックする JavaScript です。

それでは、php を使用してスクリプトを作成するために php を使用しないのはなぜでしょうか?

$(document).ready( function () {
   $("#data-*").click(function() {
      var width = <?=$width_var_in_php?>;
      var height = <?=$height_var_in_php?>;
   });
});

私のphpは少しさびていますが、アイデアは得られるはずです。次に、隠すものは何もありません。javascript には、すぐに使用できるデータが含まれています。

于 2009-05-22T18:39:54.583 に答える
0

以前にスパンでこれを行ったことがありますが、次に同様のことを行う必要がある場合は、jQueryメタデータ プラグインの使用を検討しています。

あなたの例を使用すると、次のように構成できます。

<div id="data-1" class="{width: 5, height: 10, depth: 15}"></div>
于 2009-05-22T18:53:42.983 に答える
0

JQuery 経由で選択した HTML 要素とデータを組み合わせたい場合は、jSonComments が適切なプラグインの選択肢です: http://plugins.jquery.com/project/jSonComments

JSON を HTML 構造の HTML コメントに直接配置できます。

<div id="getMyData">
<!-- Metadata
        {
        "foo":"bar"
        }
-->
</div>

次のように取得します。

$('div#getMyData').jSonComments().foo

ダッキーフリップが示唆したように、PHP でjson_encode()を使用してデータを HTML に入れることができます。

于 2010-11-22T15:19:13.850 に答える
0

HTMLとして行う必要がありますか?

JSON構造を簡単に出力できますか?

変数データ1 = {
                幅: 5,
                高さ:10,
                深さ:15
             }
...
于 2009-05-22T18:58:15.423 に答える