ホームページ >バックエンド開発 >PHPチュートリアル >jsで出力php配列をループする方法
今、私はジレンマに陥っています。php に戻る必要があり、js でロードする必要があります。
jsに戻ってphpのデータ変数を取り出したいと思いました。
どうすればいいですか?アドバイスをお願いします、ありがとうございます!
<script type="text/javascript"> var tree_gen="<?php echo $arr[0]['ConstrProjName'];?>"; //可以赋到值 var tree_len="<?php echo count($arr);?>" //可以赋到值 if (document.getElementById) { var tree = new WebFXTree(tree_gen); tree.setBehavior('classic'); for (var i=0;i<tree_len;i++){ var e = new WebFXTreeItem("<?php echo $arr[i]['ConstrProjName'];?>"); //此时,i 变量得不到值,也就是不能用。 后边的document.write也都输出不了了。 tree.add(e); document.write("888"); } document.write(tree); tree.expandAll(); } document.write("999"); </script>
php 配列は js 配列にシリアル化でき、js を直接使用できます
var e = new WebFXTreeItem("ffbc9baa577b38fa0e7407ac6a99be81");
PHP がサーバー側で実行されるときに JS 要素が解析されず、認識されないため、この文をこのように書くことはできません。
クライアントに送信されると、PHP コードは失われるため、括弧は認識されません。
6 行目で PHP 配列 $arr を js 配列または JSON オブジェクト (JSON オブジェクトを使用することをお勧めします) に変換する必要があります。
次に、for ループを for in ループに変更して、受け取ったオブジェクトを走査します。
代わりに次のように試してください。
<script type="text/javascript"> var tree_gen="<?php echo $arr[0]['ConstrProjName'];?>"; //可以赋到值var tree_len="<?php echo count($arr);?>" //可以赋到值var arr = <?php echo json_encode($arr) ?>; // 先把php数组转为jsonif (document.getElementById) { var tree = new WebFXTree(tree_gen); tree.setBehavior('classic'); for (var i=0;i<tree_len;i++){ var e = new WebFXTreeItem(arr[i]['ConstrProjName']); // 改为读json数组 tree.add(e); document.write("888"); } document.write(tree); tree.expandAll();}document.write("999");</script>
valueを渡すとき、配列はjsonオブジェクトを走査できるようにjsonに変換されます。
皆さん、ありがとう。上記のものはうまくいきます。うまくいきます。笑
みんなにポイントあげてね
これに変えてみて。
var e = new WebFXTreeItem(arr[i]['ConstrProjName']); // 改为读json数组 tree.add(e); document.write("888");
ID 番号はテーブルのフィールドから取得されます。最初のノードには ID 番号が付いています。各ノードに隠し ID 番号を追加することをお勧めします。よろしくお願いします。