2014-02-25 2 views
0

그래, 여기에서 가장 중요한 문제는 데이터베이스에서 얻는 값을 아약스를 통해 비교해야한다는 것입니다. textbox의 값은 옵션 값에 따라 데이터베이스에 있습니다.값이 데이터베이스의 텍스트 상자 값에 존재하지 않으면 이전 값으로 돌아갑니다.

이 스크립트를 보았지만 자동 완성 코드에 어떻게 혼합 할 수 있는지 알 수 없습니다. 근원은 나의 큰 문제 중 하나입니다.

<script> 
$(document).ready(function() { 
    $("#auto").autocomplete({ 
     source: function(request, response) { 
      var results = $.ui.autocomplete.filter(src, request.term) 
       , el = this.element[0]; 

      if (results.length) { 
       el.value = results[0]; 
       el.setSelectionRange(request.term.length, el.value.length); 
      } 

      response(results); 
     }, 
     change: function (event, ui) { 
      if (!ui.item) { 
       this.value = ''; 
      } 
     } 
    }); 
}); 
    </script> 

현재 값이 목록에없는 경우 텍스트 상자를 반환하고 싶습니다.

내 페이지

<script> 
function changeAutoComplete (val) { 
    $("#tags").autocomplete({ 
     source: 'autocomplete.php?selected='+val 
    }); 
} 
</script> 
</head> 
<body> 
Drop1 
<?php 
    $mysqli = new mysqli("localhost", "root", "", "2015"); 
    $combo = $mysqli->query("SELECT * FROM category GROUP BY cat_code ORDER BY id"); 
    $option = ''; 
    while($row = $combo->fetch_assoc()) 
     { 
     $option .= '<option value = "'.$row['cat_code'].'">'.$row['category'].'</option>'; 
     } 
    ?> 
<select id="main" name="main" onchange="changeAutoComplete(this.value)"> 
<option value="" selected="selected">Choose</option> 
<?php echo $option; ?> 
</select> 

<div class="demo-frame"> 
<label for="tags">Tags: </label> 
<input id="tags" name="items"> 

답변

0

당신은 서버에서 그걸 얻기 위해 노력하고 있습니다. 다음 당신은 자동 완성의 원격 예제를 사용해야합니다.

그 때문에 익명의 함수 함수 (요청, 응답)를 소스에 사용해야합니다. 여기

은 아래 링크를 당신의 필요

source: function(request, response) { 
    $.getJSON("search.php", { 
     term: extractLast(request.term) 
    }, response); 
} 
+0

문제가 내 코드에서 onchange를 이벤트가 있습니다에 따라 다음과 같이

http://jqueryui.com/autocomplete/#multiple-remote 

업데이트 소스 속성 자동 완성 원격 예입니다. – user3318208

관련 문제