Jquery UI의 자동 완성 기능을 사용하여 데이터베이스의 사용자 이름을 쿼리하려고합니다. 그래서 사용자는 내 DB에있는 것과 비슷한 사용자 이름을 입력하고 자동 완성 기능을 사용하여 드롭 다운에서 찾고자하는 것을 추측 할 수 있습니다. 불행히도 백엔드 스크립트를 통해 제안을 얻을 수는 없습니다.Jquery 자동 완성 원격 데이터 소스
<?php
sleep(3);
// no term passed - just exit early with no response
if (empty($_GET['term'])) exit ;
$q = strtolower($_GET["term"]);
// remove slashes if they were magically added
if (get_magic_quotes_gpc()) $q = stripslashes($q);
$sql = "SELECT * FROM users";
$r = mysql_query($sql);
$items = array();
if ($r !== false && mysql_num_rows($r) > 0) {
while ($a = mysql_fetch_assoc($r)) {
$username = $a['username'];
array_push($items, $username);
}
}
$result = array();
foreach ($items as $key=>$value) {
if (strpos(strtolower($key), $q) !== false) {
array_push($result, array("id"=>$k, "label"=>$key, "value" => strip_tags($key)));
}
if (count($result) > 11)
break;
}
// json_encode is available in PHP 5.2 and above, or you can install a PECL module in earlier versions
echo json_encode($result);
/* echo $items; */
?>
결과를 반환해야하는 경우에도 스크립트는 단순히 빈 배열을 반환합니다. 여기에 무엇이 잘못되었는지 전혀 모르겠다.
흠,하지만 왜 스크립트가 빈 배열을 반환하는지 알 수 있습니까? – Thomas
오프셋 값 $ q에 문자열이 할당 된 것처럼 보입니다. $ q = strtolower ($ _ GET [ "term"]); $ q는 오프셋이고 문서 당 strpos에서 검색을 시작할 숫자 값이어야합니다. offset 지정되면 검색은 문자열의 처음부터 계산 된이 문자 수를 시작합니다. –