Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP+MySQL+AJAX, многим будет полезно 
:(
    Опции темы
NEDI
  Дата 30.4.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2006
Где: В винде

Репутация: нет
Всего: нет



Я думаю, все понимают, что время WEB 2.0. уже пришло. Поэтому нижеприведенная инфа будет интересна многим.

У меня есть таблица в БД, допустим speciality. (специализация).  В ней 3 поля: первое quantity (auto_increment), второе speciality, третье surname. В столбце speciality допустим идут значения  сантехник, киповец, программер, строитель, мануальный терапевт и так далее. В столбце surnames – фамилии специалистов. Из базы  извлекаются все значения столбца speciality и преобразовываются  в  массив special[]. Результат передаётся в функцию show_listbox

Код

<?
include 'sql.php'; //тут подключаемся к БД
$result = mysql_query("SELECT speciality FROM specialities");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$special[]="$row[0]";  
$num = mysql_num_rows($result);
}
mysql_free_result($result);


function show_listbox($i, $num, $special){
echo '<SELECT NAME="names">';
while  ($i < $num){
echo '<OPTION VALUE=" ';
echo $special[$i];
echo ' ">';
echo $special[$i];
echo '</OPTION>';
$i++;
}
echo "</select>";
}
show_listbox(0, $num, $special);
?>

На выходе имеем  листбокс, в котором на выбор предлагаются все специализации, начиная с выбранной точки отсчёта ($i).

Мне нужно, чтобы при выборе специальности появлялся второй листбокс, в котором было бы предложено выбрать фамилию специалиста, из существующего списка. Конечно желательно модифицировать существующую функцию, а не писать ещё одну.

Естественно было бы очень приятно, чтобы второй листбокс появлялся без перезагрузки страницы, т.е. используя технологию AJAX. В JS я абсолютный дуб/нуб smile , поэтому использую готовую библиотеку KA AJAX.
Там достаточно зарегистрировать PHP функцию, и повесить её на JS обработчик. Но 
МySQL функции напрочь отказываются работать. 

ТУТ есть вышеупомянутая библиотека с комментариями разработчика и примером использования и статья Криса Хэдлока, о MySQL и AJAX’e тоже с переводом и примерами.

Исчо адин вапрос: а целесообразно ли вообще использовать АЯКС в таких конструкциях?
Может на самом деле будет быстрее перезагрузить страницу? Итак, Ваши соображения господа программеры!

 






 
PM MAIL   Вверх
Mobius
Дата 1.5.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.2.2006
Где: Ё-бург Сити

Репутация: нет
Всего: нет



мне вот надо реализовать такую же фичу, smile  реализации так и не нашел 
PM MAIL WWW ICQ   Вверх
madFobos
Дата 2.5.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 7.12.2005

Репутация: 1
Всего: 3



Хм... Ну я реализовывал двойной список с помощью PEAR::HTML_QuickForm.
Вообще-то (я думаю в KE AJAX должно быть нечто подобное) нужно создать два массива, первый бедет как раз специальностями, а второй двумерным массивом вида:

 Array('spciallity1' => Array(<peoples array>), 'speciallity2' => Array(<peoples array>)),

Т.е. ключи первого массива - это есть ключи массивов с людьми (вроде понятно мысль изложил smile). Ну а с JS примерно так же (если руками). Создаешь два массива и потом на событие onChange делаешь обработку (в принципе ничего особо сложного, если доки по DOM почитать я думаю) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0818 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.