现在进退两难,退到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("");
你这句话不能这么写因为在服务器端执行PHP时不会解析你的js东西你那个i不会识别的。
当发到客户端时你的PHP代码又没有了所以括号里面永远不会识别的。
你应该在第六行将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>
传值的时候,数组转化为json,这样你可以遍历json对象。
谢了 各位,楼上的管用,好使。 呵呵
给大家点儿分
改成这样试试。
var e = new WebFXTreeItem(arr[i]['ConstrProjName']); // 改为读json数组 tree.add(e); document.write("888");
id号 是从表中字段取出来的。 第一节点都有一个id号, 每个节点加上隐藏的id号 更好些,求教 ,谢谢