2014-10-27 57 views
0

我正在使用AJAXjQuery製作一個自動完成文本框。這是我的客戶端AJAX代碼。PHP在處理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'](即$ _GET沒有設置),它是未來如果條件爲並且執行其他分支

任何人都可以幫助我如何獲得"$_GET['type'] == country"

回答

0

它似乎是類型是一個保留字並指定請求類型:GETPOST。請考慮改用另一個名字。見jQuery Documentation,下面的相關部分的提取物:

類型(默認值: 'GET')

類型:String

請求的類型,使( 「POST」 或 「GET」 ),默認是「GET」。

注意:其他HTTP請求方法(例如PUT和DELETE)也可以在此處使用,但它們不受所有瀏覽器支持。

所以,在你的榜樣永遠比不上「國」,但會「GET」