jquery — неопределенный индекс в PHP при обработке запроса ajax

Я делаю текстовое поле автозаполнения, используя AJAX а также jQuery, Вот мой код 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

Решение

Похоже что тип является зарезервированным словом и указывает тип запроса: ПОЛУЧИТЬ или же СООБЩЕНИЕ. Пожалуйста, подумайте об изменении его с другим именем. Увидеть Документация jQuery, выдержка из соответствующей части ниже:

тип (по умолчанию: «GET»)

Тип: Строка

Тип запроса («POST» или «GET»), по умолчанию «GET».

Примечание. Здесь также можно использовать другие методы HTTP-запросов, такие как PUT и DELETE, но они поддерживаются не всеми браузерами.

Так в вашем примере тип никогда не будет соответствовать «стране», но будет «GET»

0

Другие решения

Других решений пока нет …