2014-10-02 57 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}); 
}); 
相关问题