|
|
|
| Добрый день как реализовать нечто подобное?
т.е. имеет таблица в которой содержаться например названия регионов, как при вводе в форму названия города выпадал список с имеющимися вариантами?
Заранее извиняюсь, если не туда запостил | |
|
|
|
|
|
|
|
для: Silentium
(04.06.2009 в 15:30)
| | Да, для этого нужно использовать AJAX. Для упрощения задачи можно воспользоваться JS-фреймворками, например, jQuery, mooTools или prototype. Вот пример использования jQuery:
Файл index.html
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript">
$( document ).ready( function() {
$( "#button" ).click( function () {
var param = $( "#user" ).val();
$( "#progress" ).load( "process.php", { 'user' : param } );
return false;
});
});
</script>
</head>
<body>
<span id="progress"></span>
<form method="post">
Имя: <input name="user" type="text" value="" id="user" />
<input type="submit" name="send" value="Отправить" title='Отправить сообщения.' id="button" />
</form>
</body>
</html>
|
Файл process.php:
<?
echo $_POST['user'];
?>
|
По нажатию кнопки Submit происходит срабатывание JS, которое осуществляет в фоновом режиме запрос HTTP_POST к скрипту process.php, затем все, что получилось из скрипта, методом load вставляется внутрь <span id="process"></span>.
Соответственно, в файле process.php может осуществляться запрос к БД и выборка данных. А в файле index.html, соответственно, эти данные можно представить, например, как на Яндексе. Сейчас не могу найти, где-то было видео как раз о том, как сделать именно то, о чем вы спрашиваете.
И посмотрите вот сюда например: http://www.linkexchanger.su/2008/34.html
UPD: совсем забыл сказать - могут быть проблемы с кодировками. В форму лучше вставить accept-charset="UTF-8" вот так: <form action="[act]" method="[method]" accept-charset="UTF-8">
У меня, например, БД работает на 1251, соответственно, в скрипте, который осуществляет поиск по базе, мне приходилось пользоваться iconv(), чтобы UTF-8, которые скрипт передает по умолчанию, перекодировать в 1251 и делать запрос правильно. | |
|
|
|
|
|
|
|
для: aexb
(04.06.2009 в 15:53)
| | спасибо, счас буду разбираться | |
|
|
|
|
|
|
|
для: aexb
(04.06.2009 в 15:53)
| | Хотел бы воскресить данную тему!!
Воспользовался скриптом автозаполнения как на сайте
http://www.linkexchanger.su/2008/39.html
html - файл
<script type="text/javascript">
$(document).ready(function(){
// --- Автозаполнение1 ---
$("#otkuda").autocomplete("form_complete.php", {
delay:10,
minChars:1,
matchSubset:1,
autoFill:true,
matchContains:1,
cacheLength:10,
selectFirst:true,
formatItem:liFormat,
maxItemsToShow:10,
});
// --- Автозаполнение1 ---
// --- Автозаполнение2 ---
$("#kuda").autocomplete("form_complete.php", {
delay:10,
minChars:1,
matchSubset:1,
autoFill:true,
matchContains:1,
cacheLength:10,
selectFirst:true,
formatItem:liFormat,
maxItemsToShow:10,
});
|
php - файл
header('Content-Type: text/html; charset=utf-8');
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
if($_GET['q']){
$q=$_GET[q];
$r=mysql(DBName,"select np.NAME_NP as 'city', cou.NAME_COUNTRY as 'strana', reg.NAME_REGION as 'obl' FROM base.np np LEFT JOIN base.country cou ON (cou.ID_COUNTRY=np.ID_COUNTRY) LEFT JOIN base.region reg ON (reg.ID_REGION=np.ID_REGION) WHERE np.NAME_NP LIKE '%".$q."%' ORDER BY np.NAME_NP ");
for($i=0; $i<mysql_numrows($r); $i++)
{
while ($row=mysql_fetch_array($r)) {
echo iconv("windows-1251","utf-8",$row['city'])."|".iconv("windows-1251","utf-8",$row['strana'])."|".iconv("windows-1251","utf-8",$row['obl'])."\n";
}
}
}
}
|
ПРОБЛЕМА 1-в том что данный скрипт работает только если я присваиваю переменной $q="<символ>", т.е если $q=$_GET[q]; ничо не работает
ПРОБЛЕМА2- Не работает в IE, т.е только в FF и Опера запускается скрипт
Если кто из знатоков посоветует чонить дельное или подскажет решение буду очень признателен??? | |
|
|
|
|
|
|
|
для: Silentium
(19.06.2009 в 18:07)
| | Такой нужно? | |
|
|
|
|
автор: Bogivan (19.06.2009 в 23:27) |
|
|
для: Silentium
(19.06.2009 в 18:07)
| | Так вам нужно автозаполнение или связные списки? | |
|
|
|
|
|
|
|
для: Bogivan
(19.06.2009 в 23:27)
| | Мне нужно как раз автозаполнение, но как был прав последний постующий видимо дело в кодировке | |
|
|
|
|
|
|
|
для: Silentium
(19.06.2009 в 18:07)
| | Разберитесь наконец с кодировками | |
|
|
|
|
|
|
|
для: mihdan
(21.06.2009 в 02:41)
| | С эксплорером вроде тож разобрался, единственное что не работает почемуто конструкция
$("#example1","#example2","#example3",..."#exampleN").autocomplete("autocomplete.php", {
|
т.е приходится дублировать весь блок
$("#example2").autocomplete("autocomplete.php", {
delay:10,
minChars:2,
matchSubset:1,
autoFill:true,
matchContains:1,
cacheLength:10,
selectFirst:true,
formatItem:liFormat,
maxItemsToShow:10,
onItemSelect:selectItem
});
|
для каждого инпута, но это неочень удобно! | |
|
|
|
|