2014-02-20 2 views
0

Я застрял в этой проблеме через неделю. Здесь у меня есть выпадающий список с добавлением значения ajax в другое раскрывающееся меню, но теперь мне нужно отправить в текстовое поле функцию автозаполнения. Мне нужно подключить свой автозаполненный запрос и мой аякс, чтобы, если я выберу, например, шариковую, все шариковые порекомендуют в автозаполнении. Пожалуйста, помогите мне с этим. Мне нужно закончить его.Авто полная база по значению выпадающего списка в базе данных

Вот мой код

ajax.php

<script> 
$(document).ready(function(){ 
$("#tag").autocomplete("autocomplete.php", { 
     selectFirst: true 
    }); 
}); 
</script> 
</head> 
<body> 

<br/> 
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"> 
<option value="" disabled="disabled" selected="selected">Choose</option> 
<?php echo $option; ?> 
</select> 
Auto Complete <input id="tag"> 
<script type="text/javascript"> 
$('#main').change(function(){ 
$.ajax({ 
url : 'getajax.php', 
data :{mainlist_id : $(this).val()}, 
dataType:'html', 
type:'POST', 
success:function(data){ 
$('#tag').html(data); 
} 
}); 
}); 
</script> 

getajax.php

В здесь я выкладываю значение в другом выпадающем списке, но не мне нужно размещать в текстовом поле.

<?php 
if (isset($_POST["mainlist_id"])) { 
    $mysqli = new mysqli("localhost", "root", "", "2015"); 
    $main = $mysqli->real_escape_string($_POST["mainlist_id"]); 


$result1 = $mysqli->query("SELECT * FROM code WHERE cat_code='$main' GROUP BY item_code ORDER BY item"); 

    while($row = $result1->fetch_assoc()) 
    { 
    ?> 
    <option value ="<?php echo $row['item_code'];?>"><?php echo $row['item'];?></option>'; 
<?php 
    } 
    } 
?> 

autocomplete.php

<?php 
    //$q=$_GET['q']; 
    $mysqli = new mysqli("localhost", "root", "", "2015") or die("Database Error"); 
    $auto = $mysqli->real_escape_string($_GET["q"]); 
    //$main = $mysqli->real_escape_string($_POST["mainlist_id"]); AND cat_code='$main' 
    $sql = $mysqli->query("SELECT * FROM code WHERE item LIKE '%$auto%' GROUP BY id ORDER BY item"); 

    if($sql) 
    { 
     while($row=mysqli_fetch_array($sql)) 
     { 
      echo $row['item']."\n"; 
     } 
    } 
?> 
+0

Что происходит, когда вы запускаете свой код? – Lupin

+0

@ Lupin, когда я запускаю код и пытаюсь ввести в поле #tag, ничего не отображается – user3318208

+0

Вы отлаживали его? попробуйте оповестить или использовать console.log для переменной данных при успехе AJAX – Lupin

ответ

0

// всякий раз, когда у выбрать поле тега получит фокус, и она автоматически начнет поиск не так у нет необходимости вводить см функцию обратного вызова фокус с $ (это) .autocomplete ("поиск", ""); и MinLength 0. у вас послать главную ценность и получить ответ от здесь

<script> 
$(document).on("keyup", "#tag", function(){ 
    $("#tag").autocomplete({ 
     source: function(request, response) { 
     $.getJSON("autocomplete_gethere.php", { main: $("#main").val() }, response); 
     }, 
     minLength:0 
     }).focus(function() { 
     $(this).autocomplete("search", ""); 
    }); 
}); 
</script> 

    <script type="text/javascript"> 
     $('#main').change(function(){ 
     $.ajax({ 
     url : 'getajax.php', 
     data :{mainlist_id : $(this).val()}, 
     dataType:'html', 
     type:'POST', 
     success:function(data){ 
     $('#tag').focus(); //please note this, here we're focusing in that input field 
     } 
     }); 
     }); 
     </script> 

проверялось, если любой вопрос Оставить комментарий

+0

не работает. Какое использование $ (this) .autocomplete ("search", ""); – user3318208

+0

начинает показывать результаты, прежде чем вы начнете вводить –

+0

точно так же, как вы сказали. Как это исправить? – user3318208

Смежные вопросы