【问题标题】:Undefined index in PHP when processing ajax request处理ajax请求时PHP中未定义的索引
【发布时间】:2014-10-27 17:07:51
【问题描述】:

我正在使用 AJAXjQuery 创建一个自动完成文本框。这是我的客户端 AJAX 代码。

$(document).ready(function(){

    $('#tagtext').autocomplete({
        source: function( request, response ) {
            $.ajax({
                url : 'ajax.php',
                dataType: "json",
                data: {
                   name_startsWith: request.term,
                   type: 'country'
                },
                 success: function( data ) {
                     response( $.map( data, function( item ) {
                        return {
                            label: item,
                            value: item
                        }
                    }));
                }
            });
        },
        autoFocus: true,
        minLength: 0        
      }); 
});

这是我的服务器端ajax.php 代码:

<?php
    require_once 'db_const.php';

    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

    if(isset($_GET['type']) AND $_GET['type'] == 'country'){
        $result = $mysqli->query("SELECT tagname FROM tagtable where tagname LIKE '".strtoupper($_GET['name_startsWith'])."%'");    
        $data = array();
        while ($row = mysqli_fetch_array($result)) {
            array_push($data, $row['tagname']);
            //echo "Hello " .$row['tagname'];
        }   
        echo json_encode($data);
    } else {
        echo "hello";
    }    
?>

错误是我在$_GET['type'] 中没有获得 country 的值(即 $_GET 未设置)并且它超出了 if 条件 并执行else 分支。

谁能帮助我了解如何获得"$_GET['type'] == country"

【问题讨论】:

    标签: php jquery ajax autocomplete


    【解决方案1】:

    似乎 type 是保留字,指定请求的类型:GETPOST。请考虑将其更改为其他名称。请参阅jQuery Documentation,以下相关部分的摘录:

    类型(默认:'GET')

    类型:字符串

    要发出的请求类型(“POST”或“GET”),默认为“GET”。

    注意:这里也可以使用其他 HTTP 请求方法,例如 PUT 和 DELETE,但并非所有浏览器都支持。

    所以在您的示例中,type 永远不会匹配“country”,而是会匹配“GET”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-27
      • 2018-01-25
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      相关资源
      最近更新 更多