我知道这很容易,但我只知道这段代码的DOM等价物。很长的一个。我已经在堆栈中搜索了一些问题,但我似乎无法找到解决方案。
基本上我有这个脚本:
function searchNow(str)
{
$.ajax({
url: "search.php",
type: "POST",
async: false,
data: {"search": str},
success: function(data){
alert("test");
$("#result").html(data);
}
});
}
<table>
<tr>
<td>Search: </td>
<td><input type = "text" name = "search" onBlur="searchNow(this.value)"> </td>
</tr>
这会将搜索提交到search.php进行查询搜索并检索结果并将其显示在id结果中。
我可以使用旧的DOM ajax轻松地做到这一点但是我想尝试使用这个jquery版本,因为它更干净,也许更快。
在我的search.php 我有这个:
$search = $_POST['search'];
return $search;
很遗憾,我似乎无法归还任何东西。
一些输入将非常感激,我已经开始熟悉jquery ajax但只在同一页面上,而不是在页面间操作。
谢谢你, -magician答案 0 :(得分:4)
您的PHP文件应该输出值。 ajax将读取该页面并获取它的内容。
$search = $_POST['search'];
echo $search;
答案 1 :(得分:1)
您希望echo $search
而不是return
。
您还可以添加print_r($_POST);
来查看PHP方面的内容。
一旦你看到它在做什么,你可以进一步开发你的PHP脚本。
// Sets the correct response type
header('Content-type: application/json');
// get your search string/query
$search = $_POST['search'];
/*
* Do whatever you need in order to get a result
*/
echo json_encode($result);
exit;
如果要将搜索查询传递给数据库,请务必阅读Nettuts great intro to PDO。有许多常见的陷阱可能导致安全问题/漏洞利用 - 避免在该帖子中涉及主要漏洞之一(SQL注入)。
根据您的评论,请确保您的搜索字段页面在正确的位置正确包含jquery(抱歉,如果这很明显,我不是故意光顾!)
<html>
<head>
<title>Jquery Ajax</title>
<!-- google nicely host jquery for free... -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
function searchNow(str)
{
$.ajax({
url: "search.php",
type: "POST",
data: { "search": str },
success: function(data) {
alert("test");
$("#result").html(data);
}
});
}
</script>
<table>
<tr>
<td>Search: </td>
<td><input type="text" name="search" onBlur="searchNow(this.value)" /></td>
</tr>
</table>
<div id="results"></div>
</body>
</html>
答案 2 :(得分:0)
您的PHP文件应该输出值。 ajax将读取该页面并获取它的内容。
$search = $_POST['search'];
echo $search;
此外,成功选项设置为在将来的jQuery版本中弃用。您应该使用.done(callbackFunction),如下所示:
$.ajax({
url: 'beh.php',
type: 'POST',
data: {search: "beeeeeeeh"}
}).done(function () {
// do stuff
})
另外,有什么理由特别指出为什么要将异步设置为false?
答案 3 :(得分:0)
不要忘记创建一个ID =“result”的HTML元素,由选择器用来包含search.php打印的结果。
$("#result").html(data);
答案 4 :(得分:0)
我尝试使用
type: 'GET'
并在php文件中,获取值为
$search = $_GET['search'];
echo $search;
有效。希望它也适合你。