我正在尝试构建一个ajax实时搜索。
的index.php
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Search</span>
<input type="text" name="search_text" id="search_text" class="form-control" />
</div>
</div>
<div id="result"></div>
<script>
$(document).ready(function() {
load_data();
function load_data(query) {
$.ajax({
url:"new/new_fetch.php",
method:"POST",
data:{query:query},
success:function(data) {
$('#result').html(data);
}
});
}
$('#search_text').keyup(function() {
var search = $(this).val();
if(search != '') {
load_data(search);
} else {
load_data();
}
});
});
</script>
新/ new_fetch.php
$connect = mysqli_connect("localhost", "root", "root", "dbname");
if(isset($_POST["query"])) {
$query = "SELECT * FROM subcategories WHERE category_parent = '".$_GET['category']."' ORDER BY subcategory";
}
但我有一个Undefined index: category in new/new_fetch.php
错误。
我的代码在没有WHERE运算符的情况下工作。
如何使用ajax POST方法获取$_GET['category']
? THX
答案 0 :(得分:2)
错误是因为您从未在AJAX中传递类别变量。你需要做的是如下:
$.ajax({
url:"new/new_fetch.php",
method:"GET",
data:{
query:query,
category:"SOME_VALUE"
},
success:function(data) {
$('#result').html(data);
}
});
<强>更新强>
如果你想同时接受$ _GET和$ _POST,我建议你使用$ _REQUEST它包括get和post。
答案 1 :(得分:0)
要同时使用GET和POST方法传递数据,可以将GET方法变量直接添加到URL,如下所示:
var strCategory = "category1Data";
var passURL = "new/new_fetch.php?category=" + strCategory;
$.ajax({
url:passURL,
method:"POST",
data:{query:query},
success:function(data) {
$('#result').html(data);
}
});
此代码将使用POST方法提交表单,但会将变量附加到可以使用GET方法捕获的URL。