D
DiG
Я думаю, все понимают, что время WEB 2.0. уже пришло. Поэтому нижеприведенная инфа будет интересна многим.
У меня есть таблица в БД, допустим speciality. (специализация). В ней 3 поля: первое quantity (auto_increment), второе speciality, третье surname. В столбце speciality допустим идут значения сантехник, киповец, программер, строитель, мануальный терапевт и так далее. В столбце surnames – фамилии специалистов. Из базы извлекаются все значения столбца speciality и преобразовываются в массив special[]. Результат передаётся в функцию show_listbox
На выходе имеем листбокс, в котором на выбор предлагаются все специализации, начиная с выбранной точки отсчёта ($i).
Мне нужно, чтобы при выборе специальности появлялся второй листбокс, в котором было бы предложено выбрать фамилию специалиста, из существующего списка. Конечно желательно модифицировать существующую функцию, а не писать ещё одну.
Естественно было бы очень приятно, чтобы второй листбокс появлялся без перезагрузки страницы, т.е. используя технологию AJAX. В JS я абсолютный дуб/нуб, поэтому использую готовую библиотеку KA AJAX.
Там достаточно зарегистрировать PHP функцию, и повесить её на JS обработчик. Но
МySQL функции напрочь отказываются работать.
Ещё один вопрос: а целесообразно ли вообще использовать АЯКС в таких конструкциях?
Может на самом деле будет быстрее перезагрузить страницу? Итак, Ваши соображения господа программеры!
У меня есть таблица в БД, допустим 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);
?>
Мне нужно, чтобы при выборе специальности появлялся второй листбокс, в котором было бы предложено выбрать фамилию специалиста, из существующего списка. Конечно желательно модифицировать существующую функцию, а не писать ещё одну.
Естественно было бы очень приятно, чтобы второй листбокс появлялся без перезагрузки страницы, т.е. используя технологию AJAX. В JS я абсолютный дуб/нуб, поэтому использую готовую библиотеку KA AJAX.
Там достаточно зарегистрировать PHP функцию, и повесить её на JS обработчик. Но
МySQL функции напрочь отказываются работать.
Ссылка скрыта от гостей
есть вышеупомянутая библиотека с комментариями разработчика и примером использования и статья Криса Хэдлока, о MySQL и AJAX’e тоже с переводом и примерами.Ещё один вопрос: а целесообразно ли вообще использовать АЯКС в таких конструкциях?
Может на самом деле будет быстрее перезагрузить страницу? Итак, Ваши соображения господа программеры!