PHP+AJAX+MySQL
У меня есть таблица в БД, допустим 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 я абсолютный дуб/нуб :D, поэтому использую готовую библиотеку KA AJAX.
Там достаточно зарегистрировать PHP функцию, и повесить её на JS обработчик. Но
МySQL функции напрочь отказываются работать.
Тут есть вышеупомянутая библиотека с комментариями разработчика и примером использования и статья Криса Хэдлока, о MySQL и AJAX’e тоже с переводом и примерами.
Исчо адин вапрос: а целесообразно ли вообще использовать АЯКС в таких конструкциях?
Может на самом деле будет быстрее перезагрузить страницу? Итак, Ваши соображения господа программеры!
2. Поясните пожалуйста чем отличаются MySQL функции в PHP от не MySQL.
Оно наступит только тогда, когда все браузеры будут корректно отображать основные словари XML и его связку с JavaScript.
Если такой вопрос задаётся, то я думаю, что сначало нужно почитать "Что такое ALAX".
1. Предлагаю общаться на великом и могучем и исключить всякие "Исчо".
2. Поясните пожалуйста чем отличаются MySQL функции в PHP от не MySQL.
Оно наступит только тогда, когда все браузеры будут корректно отображать основные словари XML и его связку с JavaScript. Если такой вопрос задаётся, то я думаю, что сначало нужно почитать "Что такое ALAX".
1. Я по спецухе филолог, и я не думаю, что меня следует учить общаться на родном языке. Это всего лишь даньуходящей моде.
2. Тем, что для первых функций из вышеозначенных нужно соединение с БД.
3. Флудить я и сам умею. А что можете сказать по делу?
Тут принято общаться на русском языке.
А какие затруднения тогда? Вызываете скрипт который подключается к БД.
Я отвечаю на вопросы. И повторюсь, прежде чем задавать вопросы как этот
Подумайте, зачем вообще тогда нужен AJAX.
Может на самом деле будет быстрее перезагрузить страницу?
Камрад shaelf прав, что посылает тебя в сад ;)
Основная задача AJAX не скорость (хотя ресурс на AJAX будет работать быстрее, нужны примеры, идем в гугль), а исключение из трафика инфы, которая посылается от сервера хотя она совершенно не изменилась. Т.е. паразитный трафик. Вот как раз его эта технология позволяет и минимизировать.
А вообще замечу, что это сроди связи. Когда фактически на том же оборудовании, и на каналах той же ширины при именении логики кодирования сигнала удается запихать в канал данных больше, чем при старом алгоритме.
Так и AJAX: браузеры теже, серевера теже самый, каналы связи по прежнему такие же и логики их работы не изменялась. Лишь чуть чуть изменили алгоритм работы клиент-серверной схемы работы браузера и сервера и все, все уже кричать о Web 2.0. А фактически то нифига не изменилось.