我在使用 jQuery、PHP 和 MySQL 从页面返回数据时遇到了一些问题。我想在 index.php 页面上显示查询结果。使用 getResults.php 从数据库中获取结果。
当我手动运行 getResults.php?id=123 文件时,一切正常。在这种情况下,我看到了我想要的结果。但是,当我想在 index.php 上的提交表单中发布“id”123 时,我没有看到 jQuery/getResults.php 返回的任何结果。唯一改变的是 URL:index.php?id=123。但是,我没有看到任何结果或错误消息...
有人有想法吗?
getResults.php文件
$search = mysql_real_escape_string( isset ($_POST['id']));
if ($search) {
$friend = mysql_query( " SELECT * FROM reviews WHERE fbuserid = '$search' ORDER BY datumtijd DESC" );
if ( $friend ) {
while ($row = mysql_fetch_array ($friend) ) {
echo "Show some results...";
}
} else {
echo "No matches found";
}
} else {
echo "Query not succesfull";
}
index.php文件
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("#submit").click(function) {
event.preventDefault();
$.ajax({
url:"getResults.php",
type:"GET",
data: "id="+this.value,
success: function(data) {
$("#results").html(data);
}
});
}
return false;
});
</script>
<div>
<form>
<input type="text" name="id">
<input type="submit" value="submit" id="submit">
</form>
</div>
<div id="results"></div>
编辑: 谢谢大家的意见。尽管如此,我仍然不在那里...正如您可能注意到的那样,我对 jQuery 和 PHP 不是很有经验。请参阅上面脚本中的更改。简而言之: - 如果($query)不成功,我添加了错误的陈述; - 将 $.post 方法更改为 $.ajax; - 将 PHP 文件中的 GET 更改为 POST;
还有其他建议吗?
最佳答案
您正在 POST 数据,但您的脚本正在 GET 中寻找它。
针对问题中代码的大量重写进行编辑:
$.ajax
的第一个参数应该是 URL。- 您缺少设置对象中的
{
。 - 您正在使用
=
而不是:
作为您的type
参数。 - 您没有做任何事情来阻止表单的正常提交,因此在 Ajax 发送的 HTTP 请求返回之前提交了表单并加载了一个新页面。
关于php - 没有通过 jQuery ajax post 返回的 SQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985502/