我想在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>
答案 0 :(得分:0)
'$ 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');";
}
注意 - 我不会自己使用上面的语法,这是唯一一次可以将变量写为$row[id]
。我更喜欢
echo "d.add('" . $row['id']. "','" . $row['pid']. "'...
答案 1 :(得分:0)
您正在使用列的名称,就好像它们是变量一样。你需要从数组中获取它们:
while ($row = mysql_fetch_array($result))
{
echo "d.add('{$row['id']}','{$row['pid']}','{$row['node']}','{$row['url']}', '{$row['node']}', 'main');";
}
答案 2 :(得分:0)
您的代码无效,因为您尚未定义$id
,$pid
等的值。也就是说,假设您的文本是UTF-8编码,您可以使用json_encode()来正确编码PHP数据类型:
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年是last updated!您可能希望研究更新,更好的替代方案,例如https://stackoverflow.com/questions/1710114/jquery-tree-plugin中提到的那些。