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
不要+號代表的空間?也許我需要從數據開始修剪一個空間?