我正在尝试使用ajax过滤/搜索数据库
$.ajax({
type: "POST",
url: "filterSearch.php",
queryString: qry,
success: function(data){
alert( "Data Saved: " + data );
$('#searchResult').html(data); // Fill the search results box
}
});
现在在filterSearch.php中我有以下测试代码
if(isset($_POST['queryString'])) {
echo "TEST";
}
if($_POST['runquery']==1) {
$sql = "SELECT * FROM fs_vacatures WHERE here-the-like-query?";
$msg = $sql;
echo $msg;
die();
}
die();
但是TEST还是$ sql都没有在警报中返回?
答案 0 :(得分:1)
您的$.ajax
电话应如下所示:
$.ajax({
type: "POST",
url: "filterSearch.php",
data: {queryString: qry},
success: function(data){
alert( "Data Saved: " + data );
$('#searchResult').html(data); // Fill the search results box
}
});
也就是说,您需要使用data
option传递参数名称和值。在您的示例中,您发明了一个名为queryString
的新选项,它不会随jQuery一起飞行。
答案 1 :(得分:1)
阅读有关.ajax()
的文档。 没有参数queryString
,您必须使用data
。
它应该看起来像这样:
data: {'queryString': qry, 'runquery': 1}
<强>更新强>
好的,你可以这样使用POST
:
$.ajax({
type: "POST",
url: "filterSearch.php",
data: {'runquery': 1, 'name': 'sdaf', 'asdf': 'asdf'}
//...
});
然后您可以使用$_POST['runquery']
,$_POST['name']
等访问参数。
或者您使用GET
:
$.ajax({
type: "GET",
url: "filterSearch.php" + qry, // which results in 'filterSearch.php?runquery=1&name=sdaf&asfd=asd'
// ...
});
并通过$_GET['runquery']
,$_GET['name']
等
答案 2 :(得分:0)
如果您使用jQuery尝试使用“post”,您可以将post参数添加为键值对:
$.post("filterSearch.php", { "queryString": "theValueOfQueryString", "runquery" : 1 },
function(data){
alert( "Data Saved: " + data );
$('#searchResult').html(data); // Fill the search results box
});
请参阅jquery了解更多信息
答案 3 :(得分:0)
我更喜欢序列化方法。
$.ajax({url: "filterSearch.php", type: "POST", data: $("form").serialize(),
success: function(data){
}
});
答案 4 :(得分:0)
$.ajax(
{
type: "POST",
url: "test.php",
data: {'test': test, 'name': 0, 'asdf': 'asdf'},
success: function(html)
{
alert(html);
}
});
和
<?php
echo "come here";
echo $_POST['runquery'];
?>
DIR
$ tree
.
├── a.php
└── test.php