2012-07-02 4 views
0

나는이 코드를 작성했습니다. 사용자가 우편 번호 나 도시 이름을 입력하면 같은 쿼리를 사용하여 데이터베이스에서 가져옵니다. 이제는 문제가 있습니다. 두 필드가있는 약 1260 개의 레코드가 하나 있습니다. 다른 하나는 우편 번호입니다.Jquery 자동 완성이 너무 느립니다.

 SELECT code, area FROM post_codes WHERE code LIKE '$q%' or area LIKE '$q%' ORDER BY area LIMIT 4 

i는 사용자가 게시 많은 질문을 읽고 온라인뿐만 아니라 연구하지만 아무것도뿐만 아니라 .I도 색인을 둘뿐만 아니라 데이터베이스에서 이러한 필드는 .. 그 점점 기록이 그게입니다 너무 느려 사용 쿼리 지연을 작동하지 않은 첫 번째 문제는 이제 내 두 번째 문제는 사용자가 검색 텍스트 필드에 있고 탭을 누를 때 그가 검색을 무시하고 잘못된 코드를 작성하면 참조 할 수있는 코드가 여기에 있다는 것을 제한하는 것입니다.

 $("#Postcode").autocomplete("get_codes2.php", { 


     width: 260, 
queryDelay:0, 

    dataType: 'json', 
    parse: function(data) { 
      var array = new Array(); 
      for(var i=0;i<data.length;i++) 
      { 

      array[array.length] = { data: data[i], value: data[i].areacode, result: data[i].areacode}; 

      } 
      return array; 
    }, 

    formatItem: function(row) {      





    return row.areacode; 
    } 






}).result(function(){ 
+0

완료 .... 감사합니다 –

+0

처음에는 입력이 포스트 코드인지 확인하려고 할 수 있습니다. 나는이 코드가 당신이 살고있는 곳이 어디인지는 모르지만, 노르웨이에서는 항상 4 자리 숫자이므로, 나를 구분하는 것은 매우 간단합니다. 너의 상황에서 모르겠다. – OptimusCrime

+0

사이드 노드로 : 코드는 SQL 인젝션에 취약한 것처럼 보입니다. – jantimon

답변

1

나는 Drupal's API search이 문제를 해결하는 정말 좋은 방법이있다 생각합니다. 모든 증분 검색에 백엔드가 적용되도록하는 대안은 클라이언트 측에서 자동 완료하는 데 사용되는 하나의 큰 JSON file을 제공하는 것입니다.

구현시 실제로 필요한 경우에만 JSON을 가져 오기 위해 검색 입력에 대한 포커스 이벤트를 수신하고 있습니다.

+0

에서 전달 된 quyery에 대해 이야기하는 경우 그것을 지적 해 주셔서 고마워하지만 난 MySQL의 SQL 쿼리처럼 검색을위한 코드를 작성해야 –

+0

왜? 이 appraoch 완전히 그 요구 사항을 회피 것입니다. 대신'SELECT 코드, 영역 FROM post_codes'를 실행하여 하나의 큰 JSON 파일로 제공 한 다음 일치하는 클라이언트 측을 처리하십시오. jQuery Autocomplete에는 로컬 데이터를 사용하기위한 내장 된 지원 기능이 있습니다. –

+0

괜찮 았는지 확인하십시오. –

관련 문제