ajax没有收到GET术语

时间:2013-11-20 06:57:10

标签: php jquery ajax

这是我的jquery:

$("#sq").autocomplete({
 source: function( request, response ) {
    $.ajax({
        url: "ajaxautocomplete.php",
        dataType: "json",
        data: {
        featureClass: "P",
        style: "full",
        maxRows: 6,
        name_startsWith: request.term
        },
            success: function( data ) {
            response( $.map( data, function( item ) {
                return {
                label: item ,
                value: item
                }
            }));
            }
    });
    },
    minLength: 1,
});

和我的php:

echo json_encode(array($_GET['term']));

问题是php没有收到这个词。为什么呢?

4 个答案:

答案 0 :(得分:1)

您没有任何参数term。您正在传递此数据:

   data: {
    featureClass: "P",
    style: "full",
    maxRows: 6,
    name_startsWith: request.term
   },

所以你可以通过以下方式获得:

echo $_REQUEST['featureClass'];
echo $_REQUEST['style'];
echo $_REQUEST['maxRows'];
echo $_REQUEST['name_startsWith'];

您认为自己没有term参数name_startsWith

为此用途:

echo json_encode($_REQUEST['name_startsWith']);

答案 1 :(得分:0)

应该是

     echo json_encode(array($_GET['name_startsWith']));

答案 2 :(得分:0)

如果您想像[{1}}那样访问,$_GET['term']请求中应该有name-value-pair term=something。哪个不存在。

答案 3 :(得分:-1)

通过添加类型来尝试这样的事情:GET

$.ajax({
        url: "ajaxautocomplete.php",
        type:GET,
        dataType: "json",
        data: {
        featureClass: "P",
        style: "full",
        maxRows: 6,
        name_startsWith: request.term