[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: подгружаемый селект
tvix
Есть select со списком городов, которые берутся из базы. Список очень большой, прокручивать не очень удобно. Как сделать так, чтобы пользователь вводил первую букву города, а селект подгружал только те города, у которых первая буква совпадает с введеной пользователем. Или тоже самое по двум-трем первым буквам. Подскажите как это реализовать.



Спустя 10 минут, 47 секунд (10.08.2012 - 13:33) SoMeOnE написал(а):
автокомплитом. Можно даже самому не писать
http://harvesthq.github.com/chosen/

Спустя 14 минут, 39 секунд (10.08.2012 - 13:48) Игорь_Vasinsky написал(а):
Я за 5 минут написал твой автокомплит :lol: :lol: :lol: :lol:

user posted image

Форма куда вводят текст

<?php
header('Content-Type: text/html;charset=UTF-8');
?>
<style>
span{
cursor:pointer;
text-decoration: underline;
color: #0666AF;
}
</style>

<
input id="in" onkeyup="ajaxcl()" type="text"/>
<
div id="list"></div>
<
script type="text/javascript">
function ajaxcl () {

var letters = document.getElementById('in').value;

var xmlhttp;
if ( window.XMLHttpRequest ) {
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// IE6, IE5
xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}
// обрабатываем ответ
xmlhttp.onreadystatechange = function () {
// если запрос к скрипту удачный
if ( xmlhttp.readyState == 4 ) {

document.getElementById("list").innerHTML=xmlhttp.responseText;

}
}

// отправляем запрос
xmlhttp.open ( "GET", "getdata.php?letters="+letters+"&rand="+Math.random(), true );
xmlhttp.send ();
}

function set(span)
{
document.getElementById('in').value = span.innerHTML;
document.getElementById('list').style.display = 'none';
}
</script>


Обработчик getdata.php (массив - типа выборка из БД)
<?php
header('Content-Type: text/html;charset=UTF-8');

$citys = array("Уфа", "Москва", "Урюпинск", "Киев", "Кишенёв");

$letters = isset($_GET['letters']) ? $_GET['letters'] : '_';

if(isset($letters) AND !empty($letters))
{
foreach($citys as $city)
if(substr_count($city, $letters)>0)

}
?>

Спустя 3 минуты, 42 секунды (10.08.2012 - 13:52) Игорь_Vasinsky написал(а):
обращение к обработчику - только когда что то пишут в input wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.