Я делаю текстовое поле автозаполнения, используя 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"
?
Похоже что тип является зарезервированным словом и указывает тип запроса: ПОЛУЧИТЬ или же СООБЩЕНИЕ. Пожалуйста, подумайте об изменении его с другим именем. Увидеть Документация jQuery, выдержка из соответствующей части ниже:
тип (по умолчанию: «GET»)
Тип: Строка
Тип запроса («POST» или «GET»), по умолчанию «GET».
Примечание. Здесь также можно использовать другие методы HTTP-запросов, такие как PUT и DELETE, но они поддерживаются не всеми браузерами.
Так в вашем примере тип никогда не будет соответствовать «стране», но будет «GET»
Других решений пока нет …