Мой код отлично работает здесь http://jsfiddle.net/qv94t/7/. Но когда значение параметра исходит от php, функция работает неправильно. Я использовал ajax для генерации значения параметра, но он также имеет ту же ошибку, если я повторяю значение параметра на той же странице и не использую ajax.Autocomplete return blank, если текущего значения нет в списке
Почему? Помогите пожалуйста
Мой Аякса
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 class="eachop" value ="<?php echo $row['item'];?>"><?php echo $row['item'];?></option>';
<?php
}
}
?>
А вот мой полный код, я забыл добавить свой Аякса и ниспадающее меню. Кто-нибудь поможет, пожалуйста?
ajax.php
<?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>
<input list="languages" id="none"></input>
<datalist id="languages" name="options">
<option value=""></option>
</datalist>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script>
<input type="submit" name="submit" value="Submit" />
<script type="text/javascript">
$('#main').change(function(){
$.ajax({
url : 'getajax.php',
data :{mainlist_id : $(this).val()},
dataType:'html',
type:'POST',
success:function(data){
$('#languages').html(data);
}
});
});
</script>
<script>
var validOptions = [];
$("option").each(function() {
validOptions.push($(this).val())
});
previousValue = "";
console.log(validOptions)
$('#none').autocomplete({
autoFocus: true,
source: validOptions
}).keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
});
</script>
как генерировать $ вариант в php ?? вы можете поделиться своим источником страницы при просмотре браузером –
@CodingAnt Я обновил свой вопрос. На самом деле он генерируется ajax. Я просто пишу, как bcoz. У него такая же ошибка. – user3318208
Я думаю, что ваш последний скрипт выполнен до завершения операции ajax. Тем не менее, трудно сказать, что не так, не видя, как вы генерируете '$ option' с ajax (я имею в виду, где, когда). – alalp