У меня такая же проблема, как и в этом вопросе:
автоматически предлагать php ajax с двумя полями ввода, не работающими с данным примером кода
Однако при попытке предложения у меня все еще возникает та же проблема.
У меня есть два поля ввода, которые я хотел бы автоматически предлагать из базы данных.
Однако автоматическое предложение появляется только под одним из полей, независимо от того, какое поле набрано дюйм.
Это то, к чему я пришел после предложений в вопросе, ссылка на который приведена вверху.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script>
function suggest(inputString){
if(inputString.length == 0) {
$('#suggestions').fadeOut();
} else {
$('#customer').addClass('load');
$.post("/templates/autosuggest/autosuggest.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').fadeIn();
$('#suggestionsList').html(data);
$('#customer').removeClass('load');
}
});
}
}
function fill(thisValue) {
$('#customer').val(thisValue);
setTimeout("$('#suggestions').fadeOut();", 10);
}
</script>
<script>
function suggest(inputString){
if(inputString.length == 0) {
$('#suggestionssearch').fadeOut();
} else {
$('#customersearch').addClass('load');
$.post("/templates/autosuggest/autosuggest.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestionssearch').fadeIn();
$('#suggestionsListsearch').html(data);
$('#customersearch').removeClass('load');
}
});
}
}
function fill(thisValue) {
$('#customersearch').val(thisValue);
setTimeout("$('#suggestionssearch').fadeOut();", 10);
}
</script>
И мои входы:
<input type="text" name="Customer" value="" id="customer" onkeyup="suggest(this.value);" onblur="fill();" class="" style="height:14px; margin-top:2px;" placeholder="Search Customers" autocomplete="off">
<input type="submit">
<div id="suggestcontainer" style="margin-left:2px;">
<div class="suggestionsBox" id="suggestions" style="display: none;">
<div class="suggestionList" id="suggestionsList"> </div>
</div>
</div>
<input type="text" name="Customer" value="" id="customersearch" onkeyup="suggest(this.value);" onblur="fill();" class="" style="width:90px; height:14px; margin-top:2px;" placeholder="Customer" autocomplete="off" required="required"/>
<input type="submit" style="float:right;">
<div id="suggestcontainersearch">
<div class="suggestionsBoxsearch" id="suggestionssearch" style="display: none;">
<div class="suggestionListsearch" id="suggestionsListsearch"> </div>
</div>
</div>
Я пробовал это со своим скриптом в качестве теста:
<script>
function suggest(inputString){
if(inputString.length == 0) {
$('#suggestions').fadeOut();
$('#suggestionssearch').fadeOut();
} else {
$('#customer').addClass('load');
$('#customersearch').addClass('load');
$.post("/templates/autosuggest/autosuggest.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').fadeIn();
$('#suggestionsList').html(data);
$('#customer').removeClass('load');
$('#suggestionssearch').fadeIn();
$('#suggestionsListsearch').html(data);
$('#customersearch').removeClass('load');
}
});
}
}
function fill(thisValue) {
$('#customer').val(thisValue);
setTimeout("$('#suggestions').fadeOut();", 10);
$('#customersearch').val(thisValue);
setTimeout("$('#suggestionssearch').fadeOut();", 10);
}
</script>
Это работает в том смысле, что если я ввожу в один из них, появляются оба, очевидно, не то, что мне нужно, но показывает, что он их видит. Похоже, ему не нравится иметь два скрипта.
Любая помощь была бы фантастической. Приветствую всех заранее.
Также, если кто-нибудь знает, как я могу затем прокручивать автоматически предлагаемые результаты с помощью кнопок клавиатуры вверх и вниз, что было бы глазурью на торте !!
$(function() { $( "#customersearch" ).autocomplete({ source: "/templates/autosuggest/customersuggest.php", select: function( event, ui ) { var selectedObj = ui.item; } }); });
и выбор базы данных:$search = $_GET['term']; $letter = substr($search, 0, 1); $req = "SELECT Customer FROM Customers WHERE Customer LIKE '%$search%' ORDER BY Customer LIKE '%$letter%'";
- person J Allen   schedule 12.01.2013order by case
, и вы, вероятно, сможете решить проблему с этим. - person atomman   schedule 12.01.2013SELECT Customer FROM Customers WHERE Customer LIKE '%$search%' ORDER BY CASE WHEN Customer LIKE '$search%' THEN 1 ELSE 2 END
Что-то вроде этого, наверное, не проверял. - person atomman   schedule 12.01.2013