2013-03-22 364 views
0

我使用MySQL連接和PHP檢索了當前在線的所有朋友的姓名。將數據庫值傳遞給JavaScript

現在我想在JavaScript中插入他們的名字來與他們聊天。

<a href="javascript:void(0)" onclick="javascript:chatWith('Friend1')">Friend1 </a> 
<a href="javascript:void(0)" onclick="javascript:chatWith('Friend2')">Friend2 </a> 

我無法做到這一點。因爲我不知道如何在PHP中調用JavaScript或反之亦然。

while($get_usernames=mysql_fetch_array($get_users_query)) {    
    echo '<br>'.$get_usernames['username'];       
} 

我想告訴每個$get_usernames['username']作爲朋友1,FRIEND2,裏面的JavaScript

+0

您正嘗試訪問服務器上的數據庫,從客戶端運行的JavaScript?你需要調用一個從db中獲取數據並返回結果的Ajax。 – 2013-03-22 14:08:12

回答

0

喜歡的東西:

<?php 
$aUsernames = array(); 
while($get_usernames=mysql_fetch_array($get_users_query)) {    
    array_push($aUsernames, $get_usernames['username']);       
} 
foreach($aUsernames as $name) { 
?> 
<a href="javascript:void(0)" onclick="javascript:chatWith('<?php echo $name; ?>')"><?= $name; ?> </a> 
<?php 
} 
?> 

使用AJAX是更加簡潔ofcourse,但如果是在同一個PHP文件,這將足夠了。

另外,我想鼓勵你轉移到PDO或Mysqli,因爲mysql函數已被棄用。

+0

謝謝chrisblomm我會試試看... – 2013-03-22 14:16:42

+0

陣列推送需要2個參數導致錯誤! – 2013-03-22 14:48:43

+0

小小的錯字,現在應該工作。 – chrisblomm 2013-03-22 14:50:29

2

可以使用AJAX調用PHP頁面,並從獲得價值。

調用php頁面,查詢後只需使用echo返回值。你可以在javascript

http://www.tizag.com/ajaxTutorial/ajaxphp.php

+0

如果他不介意,可能使用[jQuery for ajax](http://api.jquery.com/jQuery.ajax/)會更容易學習。 – 2013-03-22 14:11:33

+0

@BojanKovacevic是的jquery真棒簡單,更容易 – 2013-03-22 14:12:25

1

使用responseText如果您希望將裏面的javascript一些PHP變量,這是通過簡單地使用你的頁面裏面的PHP循環創造了一個標籤做一個簡單的方法是價值。

事情是這樣的:

$aTagList = ""; 
while($get_usernames=mysql_fetch_array($get_users_query)) {    
    $aTagList .= "<a href='javascript:void(0)' onclick='javascript:chatWith(\"".$get_usernames['username']."\")>".$get_usernames['username']."</a>";       
} 

然後呼應$ aTagList無論你有一些內嵌代碼需要在頁面中。

<?php echo $aTagList; ?> 

不知道是否我所有的轉義正確,但它應該給你正確的想法。

+0

thaks讓我試試這個.. – 2013-03-22 14:21:54

+0

我不能回顯$ aTagList,它導致頁面的一些缺失 – 2013-03-22 14:44:14

+0

究竟是什麼造成的?您正在執行查詢的php頁面是否與打印標籤時相同? – Blunderfest 2013-03-22 15:48:47