js で出力 php 配列をループする方法
この投稿は、2014-11-20 18:11:40 に A9925 によって最終編集されました 今、私はジレンマに陥っています。php に後退し、js は次のことを行う必要があります。物を積み込む。
jsに戻ってphpのデータ変数を取り出したいと思いました。
どうすればいいですか?アドバイスをお願いします、ありがとうございます!
<br /><script type="text/javascript"><br /> <br /><br /> var tree_gen="<?php echo $arr[0]['ConstrProjName'];?>"; //可以赋到值<br /> var tree_len="<?php echo count($arr);?>" //可以赋到值<br /><br /> if (document.getElementById) { <br /> var tree = new WebFXTree(tree_gen);<br /> tree.setBehavior('classic');<br /><br /> for (var i=0;i<tree_len;i++){<br /> <br /> var e = new WebFXTreeItem("<?php echo $arr[i]['ConstrProjName'];?>"); //此时,i 变量得不到值,也就是不能用。 后边的document.write也都输出不了了。<br /> tree.add(e);<br /> document.write("888");<br /><br /> <br /> }<br /> document.write(tree);<br /> tree.expandAll();<br /> }<br /><br /> document.write("999");<br /> </script><br />
ログイン後にコピー
var e = new WebFXTreeItem(""); $arr[i]['ConstrProjName'] は動的に取得される値です。
今すぐ修正するにはどうすればよいですか?アドバイスをお願いします、ありがとうございます!
------解決策----------------------PHP 配列は js としてシリアル化されます配列 js は直接使用できます
------解決策のアイデア---------------------- var e = new WebFXTreeItem("");
サーバー側で PHP を実行すると解析されないため、この文を書くことはできません。 js のものを認識しません。
クライアントに送信されると、PHP コードは失われるため、括弧は認識されません。
6 行目で PHP 配列 $arr を js 配列または JSON オブジェクト (JSON オブジェクトを使用することをお勧めします) に変換する必要があります。
次に、for ループを for in ループに変更して、受け取ったオブジェクトを走査します。
------解決策---------------------- これに変更してみてください。
<br /><script type="text/javascript"><br /> <br /> <br />var tree_gen="<?php echo $arr[0]['ConstrProjName'];?>"; //可以赋到值<br />var tree_len="<?php echo count($arr);?>" //可以赋到值<br />var arr = <?php echo json_encode($arr) ?>; // 先把php数组转为json<br /><br />if (document.getElementById) { <br /> var tree = new WebFXTree(tree_gen);<br /> tree.setBehavior('classic');<br /><br /> for (var i=0;i<tree_len;i++){<br /> <br /> var e = new WebFXTreeItem(arr[i]['ConstrProjName']); // 改为读json数组<br /> tree.add(e);<br /> document.write("888");<br /><br /> <br /> }<br /> document.write(tree);<br /> tree.expandAll();<br />}<br /><br />document.write("999");<br /></script><br />
ログイン後にコピー