[英]How to pass array value in javascript
我想在javascript中传递php值。 我运行查询并在JavaScript上应用if语句和while数组。 但始终显示空结果。 我找不到问题。 任何人请帮助我。 谢谢
<?php
session_start();
$SUserName=$_SESSION['view'];
include 'dbconnect.php';
$query="select * from user_permission where username='$SUserName'";
$result=mysql_query($query) or die (mysql_error());
?>
<script type="text/javascript">
d = new dTree('d');
d.add(0,-1,'Dhuronto');
<?php
if($SUserName=='sumon@dhuronto.com')
{
echo "d.add(1,0,'Admin','blank.php', 'Admin', 'main');";
}
else {
while ($row = mysql_fetch_array($result))
{
echo "d.add('$id','$pid','$node','$url', '$node', 'main');";
}
}
?>
</script>
“ $ id”,“ $ pid”,“ $ node”,“ $ url”,“ $ node”来自哪里?
while ($row = mysql_fetch_array($result))
{
echo "d.add('$id','$pid','$node','$url', '$node', 'main');";
}
你的意思是
while ($row = mysql_fetch_array($result))
{
echo "d.add('$row[id]','$row[pid]','$row[node]','$row[url]', '$row[node]', 'main');";
}
注意:我自己不会使用上述语法,这是您唯一可以将vars编写为$row[id]
。 我更喜欢
echo "d.add('" . $row['id']. "','" . $row['pid']. "'...
您正在使用列名,就好像它们是变量一样。 您需要从数组中获取它们:
while ($row = mysql_fetch_array($result))
{
echo "d.add('{$row['id']}','{$row['pid']}','{$row['node']}','{$row['url']}', '{$row['node']}', 'main');";
}
您的代码不起作用,因为您尚未为$id
, $pid
定义值。 也就是说,假设您的文本是UTF-8编码的,则可以使用json_encode()对JavaScript数据类型进行正确的JavaScript编码:
while ($row = mysql_fetch_array($result))
{
// I don't know your database schema, so this could be wrong
$args = array(
$row['id'], 0, htmlspecialchars($row['username']),
'blank.php', '', 'main'
);
// echo 'd.add.apply(d,' . json_encode($args) . ');';
echo 'd.add(' . implode(',', array_map('json_encode', $args)) . ');';
}
请注意,dTree是一种过时的JavaScript库,落后于当前的最佳实践。 最近一次更新是在2003年! 您可能需要研究更新,更好的替代方法,例如https://stackoverflow.com/questions/1710114/jquery-tree-plugin中提到的替代方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.