Есть живой поиск на js+php.
$(function(){
//Живой поиск
$('.who').bind("change keyup input click", function() {
if(this.value.length >= 2){
$.ajax({
type: 'post',
url: "search.php", //Путь к обработчику
data: {'who':this.value},
response: 'text',
success: function(data){
$(".search_result").html(data).fadeIn(); //Выводим полученые данные в списке
}
})
}
})
$(".search_result").hover(function(){
$(".who").blur(); //Убираем фокус с input
})
//При выборе результата поиска, прячем список и заносим выбранный результат в input
$(".search_result").on("click", "li", function(){
s_user = $(this).text();
$(".who").val(s_user).attr('enabled', 'enabled'); //деактивируем input, если нужно
$(".search_result").fadeOut();
})
})
Если input один, то заполнение нормальное, ищет и вставляет данные из справочника, а если два или больше, то в полях вывод синхронный, что и понятно
while ($arr = sql_fetch_assoc($q)) {
$did = $arr['DocumentID'];
$who = trim($arr["DocumentByWho"]);
$innerHTML .= '<td><input type="text" id="who" name="who" placeholder="' . $who . '" value="' . $who . '" class="who" autocomplete="off"><ul class="search_result"></ul></td>';
$innerHTML .= '<td><button type="submit" name="Save" value="' . $did . '">Сохраним?</form></td></tr>';
}
Выбирает из справочника скриптом
if(!empty($_POST["who"])){ //Принимаем данные
$referal = trim(strip_tags(stripcslashes(htmlspecialchars($_POST["who"]))));
$referal = addslashes($referal);
$db_referal = sql_query($connbo,"SELECT * from bo.R_NAME_DMS WHERE name LIKE '%$referal%'")
or die('Ошибка №'.__LINE__.'<br>Обратитесь к администратору сайта пожалуйста, сообщив номер ошибки.');
while ($row = sql_fetch_array($db_referal)) {
$name = str_replace("\n", "", $row["name"]);
echo "\n<li1>".mb_strtoupper($name)."</li1>";
}
}
А можно-ли как-то сделать так, чтобы заполнялся input только одной выбранной строки, а не двух или трёх? Заранее спасибо!