我正在尝试使AJAX查询工作。我使用以下方式将数据传递到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']以某种方式转换为字符串?

当我查看Firebug时,看到以下POST详细信息(“测试标题”是我的查询中使用的数据)

Parameters
data    Test Title

Source
data=+Test+Title


+号代表空格吗?也许我需要从数据开始处修剪一个空间?

最佳答案

这是由于空白。已修复以下问题:

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

关于php - 使用通过.load()传递给PHP的数据执行数据库查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26153736/

10-13 04:48
查看更多