2013-06-19 2 views
0

문제점을 파악할 수 없습니다. 나는 Type-ahead를 사용하여 자동 완성 검색 시스템을 얻는 함수를 작성했다.Typeahead 부트 스트랩 로컬에서 작동하지만 프로덕션 서버에서 작동하지 않음

이 기능은 localhost 컴퓨터에서 완벽하게 작동하지만 서버에 업로드하면 기능이 손상됩니다.

<script> 
     $(document).ready(function(){ 
      $('#q').typeahead({ 
       source: function(query, process){ 
        $.ajax({ 
         url:'autosearch.php', 
         type:'POST', 
         data:'query=' + query, 
         dataType: 'JSON', 
         async: true, 
         success:function(data){ 
          process(data); 
         } 
        }); 
       } 
      }) 
     }); 
     </script> 

그것은

<form method="GET" action="search.php" class="form-inline pull-right"> 
         <input name="q" id="q" class="span5" type="text" placeholder="search" data-provide="typeahead" autocomplete="off"> 
         <button type="submit" class="btn btn-primary"> <i class="icon-search icon-white"></i></button> 
        </form> 

이 기능을 무슨 일이야 텍스트 입력 (아래 HTML)에서 값을 얻을 :

다음은 내 타입이 미리 구문입니까?

감사

UPDATE

불을 지르고에서 결과를 얻는 후, 그 오류가 PHP 파일에 발생 보여줍니다

공지 사항 : 정의되지 않은 인덱스 : C에서 Q : \ XAMPP \ htdocs를 \ kbase \ panel \ autosearch.php on line 5

PHP 코드는 다음과 같습니다.

<?php 
require_once "configuration.php"; 
$q = mysql_real_escape_string(strtolower($_GET['q'])); 

$sql = "SELECT DISTINCT title as title FROM ** WHERE title LIKE '%" . $q ."%'"; 
$rsd = mysql_query($sql); 
$cname = array(); 

while ($rs = mysql_fetch_assoc($rsd)) 
{ 
    $cname[] = $rs['title']; 
} 
echo json_encode($cname); 
?> 

답변

0

autosearch.phpGET이 아닌 POST 요청으로 전송됩니다. 또한 query이면서 q이 아닌 변수 이름을 보냅니다.

은 머리의 최대, 당신은 아약스 쿼리를 단순화 할 수 있습니다 :

$(document).ready(function(){ 
    $('#q').typeahead({ 
     source: function(query, process) { 
      $.ajax({ 
       url:'autosearch.php', 
       type:'POST', // <- defaults to GET (desired by your PHP) 
       data:'query=' + query, // <- change to {'q': query} for your PHP 
       dataType: 'JSON', // <- 'json' LOWERCASE 
       async: true, // <- defaults to true anyway 
       success: process // <- same function signature 
     } 
    }) 
}); 
+0

네, 감사 pickypg, 난 단지 질문에 JQuery와 쿼리의 이름을 바꿀 수 있습니다. 나는 GET에서 일부 isset을 추가하고 POST 메소드로 변경하려고 시도한다. – randytan

+0

만약'POST' 요청을 원한다면'$ _GET'을'$ _POST'로 변경하고'type'을'POST 'Ajax 호출에서. – pickypg

관련 문제