2013-01-13 50 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