使用ajax获取变量$ _GET

时间:2017-04-07 13:05:28

标签: php sql ajax get

我正在尝试构建一个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

2 个答案:

答案 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。