2013-01-13 48 views
0

我想在javascript中传递php值。我运行一个查询并应用if语句,同时在javascript上应用数组。但总是显示空的结果。我找不到问题。任何人都请帮助我。由于如何在javascript中传递数组值

<?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=='[email protected]') 
        { 
        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> 
+3

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – PleaseStand

+1

@PleaseStand ..我看到每个人都在复制和粘贴此警告。有没有人知道它的链接**不**工作? –

+1

@PleaseStand你是否在每一个有'mysql_ *'函数的问题中粘贴这个评论!!? –

回答

0

在哪里 '的$ id', '$ PID', '$节点', '$网址',从未来 '$节点'?

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');"; 
} 

NB - 我不会用上面的语法自己,这是你可以写瓦尔作为$row[id]唯一的一次。我更喜欢

echo "d.add('" . $row['id']. "','" . $row['pid']. "'... 
0

您正在使用列的名称,就好像它们是变量一样。你需要从数组让他们:

while ($row = mysql_fetch_array($result)) 
{ 
    echo "d.add('{$row['id']}','{$row['pid']}','{$row['node']}','{$row['url']}', '{$row['node']}', 'main');"; 
} 
+0

这里有回音吗? – Popnoodles

0

因为你还没有为$id$pid定义的值,等您的代码不起作用。这就是说,你可以使用json_encode()为JavaScript编码PHP数据类型正确,假设你的文字是UTF-8编码:

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中提到的替代方案。

+0

考虑到在参数列表中有两个'node'的实例,我怀疑这是否可行。 – Popnoodles