2014-10-02 56 views
0

我試圖讓AJAX查詢工作。林將數據傳遞給PHP腳本使用:使用通過.load()傳遞給PHP的數據來執行數據庫查詢

$(".example").click(function(){ 
x = this.innerHTML; 
$("#example").load("ajax.php",{"data":x}); 
}); 

如果ajax.php只包括以下內容(這是一個測試),一切都很好;我已經成功地將JS數據傳遞給了PHP。

echo $_POST['data']; 

我的目標是使用$ _POST ['data']查詢我的數據庫。作爲另一項測試,我確保數據庫連接一切正常。以下作品:

$example = $dbc->prepare("SELECT x, y, z, a FROM clue WHERE userID=?"); 
$example->bind_param('s',$_SESSION['user_id']); 
$example->execute(); 
$example->bind_result($x,$y,$z,$a); 
while($example->fetch()){ 
echo '<h3>'.$x.'</h3>'; 
echo '<p>'.$y.'</p>'; 
echo '<p>'.$z.'</p>'; 
echo '<p>'.$a.'</p>'; 
} 

但是,當我修改下面的代碼行時,腳本中沒有返回任何內容。

$example = $dbc->prepare("SELECT x, y, z, a FROM clue WHERE userID=? AND a=?"); 
$example->bind_param('ss',$_SESSION['user_id'],$_POST['data']); 

令人費解的是,最初從JS傳遞的數據是從數據庫中獲得的。當我使用警報時,這些單詞與我的數據庫記錄完全相同。

有什麼建議嗎?這可能是與數據類型有關嗎?我需要確保$ _POST ['data']以某種方式轉換爲字符串嗎?

當我看着螢火蟲,我看到了下面的帖子詳細信息(「測試名稱」是我的查詢中使用的數據)

Parameters 
data Test Title 

Source 
data=+Test+Title 

不要+號代表的空間?也許我需要從數據開始修剪一個空間?

回答

0

這是由於空白。固定以下內容:

$(".example").click(function(){ 
y = this.innerHTML; 
x = y.trim(); 
$("#example").load("ajax.php",{"data":x}); 
}); 
相關問題