我正在使用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未设置),并且它超出了 if条件并执行 else 分支。
任何人都可以帮助我了解如何获得"$_GET['type'] == country"
?
答案 0 :(得分:0)
似乎类型是保留字并指定请求类型: GET 或 POST 。请考虑使用其他名称进行更改。请参阅jQuery Documentation,以下相关部分的摘录:
键入(默认:'GET')
类型:字符串
要求的类型(“POST”或“GET”),默认为“GET”。
注意:此处也可以使用其他HTTP请求方法,例如PUT和DELETE,但并非所有浏览器都支持它们。
因此,在您的示例中,类型将永远不会与“国家/地区”相匹配,但会“GET”