2010-01-13 5 views
2

안녕하세요, 사용자가 MySQL 데이터베이스에 저장된 장소를 검색 할 수 있도록 자동 완성 기능을 사용하고 있습니다. 자동 완성 플러그인은 현재 사용자가 타이핑을 시작하고 결과 처리기를 사용하여 선택한 장소를 인쇄 할 때 장소를 나열합니다.JQuery 자동 완성 결과

나는 또한 회장의 주소, 전화 번호 및 웹 사이트를 인쇄하고 싶지만 어떻게해야할지 모르겠다.

데이터베이스의 장소 이름을 출력하는 PHP 스크립트를 실행하는 자동 완성 플러그인이 있습니다.

JQuery와

$(document).ready(function(){ 
    $("#example").autocomplete("search.php", {width: 260, selectFirst: false}).result(function(event, data, formatted) { 
    $("#result").html(!data ? "No match!" : "Selected: " + formatted); 
    }); 

}); 

PHP : 나는

내가 지금까지 무엇을 가지고 ... 자동 완성 입력 필드를 표시하지 않고 데이터베이스의 다른 필드를 검색하는 방법을 잘 모르겠습니다

$search = $_GET['q']; 
    $search = "%".$search."%"; 
    $result = mysql_query("SELECT club_name FROM clubs WHERE club_name LIKE '$search'") or die('Something is wrong'); 
     while($value = mysql_fetch_array($result)){ 
      $club = $value[club_name]; 
      echo "$club\n"; 
     } 

위의 PHP는 whe nJQuery 측의 검색 결과에 표시되는 필드를 더 많이 선택하려고합니다.

저는 JQuery에 익숙하지 않으므로 조금 잃어 버렸습니다 ... 어떤 제안이 있습니까?

답변

3

그것을 할 수있는 몇 가지 방법이있다, 그러나 이것은 가장 쉬운 방법입니다 :

당신은 같은 서버에서 데이터를 반환합니다. 첫 번째 열은 결국 검색 할 값이 포함되어 있어야합니다

title|address|phone|web 
title|address|phone|web 
title|address|phone|web 

을 그리고 당신은 당신의 자동 완성 기능에 formatItem and formatValue 콜백을 사용하려면 : 당신은 탈출하지 않습니다 또한

$(document).ready(function(){ 
    $("#example").autocomplete("search.php", { 
     width: 260, 
     selectFirst: false, 
     formatItem: function(row){ 
      var ret = '<span class="title">' + row[0] + '</span><br />'; 
      ret += '<span class="address">' + row[1] + '</span> '; 
      ret += '<span class="phone">' + row[2] + '</span> '; 
      ret += '<span class="web">' + row[3] + '</span> '; 
      return ret; 
     }, 
     formatValue: function(row){ 
      return row[0]; // We only want the first value to be searched 
     } 
     }).result(function(event, data, formatted) { 
     $("#result").html(!data ? "No match!" : "Selected: " + formatted); 
     }); 
}); 

사용자로부터의 입력은 SQL 인젝션에 대한 불쾌한 대가 능성을 가지고 있습니다.

+0

감사합니다. 이스케이프하지 않는 것에 대해서는 스크립트를 테스트 중이므로 일단 작동하면 보안 기능을 추가 할 것입니다. 다시 한번 감사드립니다. – mrdthomas

+0

@mrdthomas 멋지다! 그것이 당신을 위해 작동하는 경우에 돌아와서 미래의 수색자들이 그것이 정확하다는 것을 알 수 있도록 대답을 받아 들였는지 확인하십시오 ... 우리 둘 다 rep 지점을 얻습니다 :) Stack Overflow에 오신 것을 환영합니다! –

+0

@Doug Neiner, 당신이 제공 한 코드는 훌륭하게 작동합니다. 감사합니다! – mrdthomas