2013-07-21 46 views
-1

我想在php語句中回顯一些javascript和jquery ajax代碼,並從jquery ajax發送一個mysql查詢。我在Facebook上動態輸入用戶名和發送好友請求按鈕,就像在Facebook上一樣。在php echo語句中使用jQuery Ajax

下面給出了一小部分代碼,我不明白爲什麼它不起作用。 request.php文件中沒有任何語句被執行,數據庫中也沒有任何變化。

echo '<input type = "button" id = "' . $data['user_id'] . '" value = "Send Friend 
Request" onClick = "send_request(this.id);"/>' ; 

上面的html或連接都沒有問題。這是絕對好的。我正在使用它的功能。只是ajax部分不工作。 這裏是php代碼。 request.php包含連接完成後對數據庫的查詢。

echo "<script type = 'text/javascript'>" ; 
echo "function send_request(_id) 
val = document.getElementById(_id).value ; 
if (val == 'Send Friend Request') 
    val = 'Cancel Friend Request' ; 
else 
val = 'Send Friend Request' ; 
document.getElementById(_id).value = val ; 

$.ajax 
(
{ 
type: 'post', 
url: 'request.php', 
data: {id: _id} 
} 
) ; 
}" ; 
echo "</script>" ; 

request.php

$id = $_POST['id'] ; 
$userid = $_SESSION['userid'] ; 
$query = "INSERT INTO friend (friend_id, user_id) VALUES ('$id', '$userid')" ; 
$result = mysql_query($query) 
+1

爲什麼你把所有的JS標籤放在php標籤中?爲什麼它不在它自己的JS文件中? – bzupnick

+0

因爲我動態地輸出html。您會注意到輸入標籤也被回顯。 – Sasha

+1

你的連接似乎在這裏被打破了'id =「'。{$ data ['user_id']}''」' –

回答

0

最好的答案將是把它放在它自己的JS文件,並動態地調用它該按鈕的點擊。

+0

我希望我能。但是按鈕必須在if條件下生成,否則不會。 – Sasha

+0

您可以使用if語句生成的按鈕,但單擊按鈕時運行的JavaScript始終可以坐在那裏。 – bzupnick

+0

由於按鈕被回顯,它無法在.js文件中調用JavaScript。 – Sasha

0

您在函數定義行的後面添加了動態JavaScript。

+0

我似乎無法找到它。有3個和3個。 – Sasha

+0

在上面代碼塊中的這一行後面: echo「function send_request(_id) 它可能是它沒有顯示在代碼塊中 您是否嘗試過在Firefox中運行代碼並使用Firebug進行調試。是我通常用我的代碼做的,看看是否有任何Javascript不能正常工作。 –