|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
Имеется 2 selectbox'a,в обоих значения берутся из БД,хочу ,чтобы в зависимости от значений первого selectbox'a значения второго изменялись,но все это БЕЗ ПЕРЕЗАГРУЗКИ страницы.Скрипт пишется на РНР,слышал такое возможно на AJAX,но нигде не могу найти этой фичи Модератор: Правила форума читали? Перенесено из форума PHP&PERL ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2007, 13:17 |
|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
ну вообще-то в ссылке ни слова о селектах...праально,можно подстроить,но я пока в ajax'е слабоват,и поэтому была бы лучше статья непосредственно по моей теме...конечно ,если не затруднит)) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2007, 12:25 |
|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
Orucну вообще-то в ссылке ни слова о селектах...ну ты тёмный http://developer.mozilla.org/en/docs/DOM:element.innerHTML ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2007, 13:02 |
|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
maXmo ты реально сам понял ,что за ссылКУ мне дал ??я спрашиваю о динамическом изменении данных без заполнения массивов,просто загрузка селекта динамически из базы Black насчет remove...i'm not about zat ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 09:47 |
|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
OrucBlack насчет remove...i'm not about zat Как раз об этом, если Вы повторно обновляете <select>, сначало надо удалить старые <option> Динамический Select ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 11:51 |
|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
Orucя спрашиваю о динамическом изменении данных без заполнения массивов,просто загрузка селекта динамически из базыэто оно и есть: шлёп – и всё поменялось. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 14:36 |
|
Изменение содержания <select>
|
|||
---|---|---|---|
#18+
этот шлёп еще сделать надо))) 2Black зачем мне удалять значения старых опций если я буду оперировать дивами воть вам код НО ОН У МЕНЯ ПОЧЕМУ ТО НЕ ПАШЕТ 1) Завести 2 слоя (<div>) для первого select (он формируется) и для второго (который сформируется после выбора в первом): Код: html <B> <form action="index.php" method="POST"> <div id="d1"><select id="selp" onchange="makeselect()"><option value="1">1</option><option value="2">2</option></select> </div> <div id="d2"> </div> </form> </b> 2) как видно в первом селекте стоит обработка события onchange="makeselect();" : здесь makeselect() - функция JavaScript которая формирует запрос к серверному php-скрипту, получает от него ответ и выводит его динамически. См. подробности далее: 3) В своем файле еще нужно прописать подключение файла JavaScript functions.js: Код: javascript <b> var xmlhttp = false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } //на этом этапе мы создали экземпляр объекта XMLHttpRequest //собственно полезная функция function makeselect() { var val = document.getElementById("selp").value; //получаем значение в первом select var serverPage = "makeselect.php?v=" + val; //php-скрипт обработчика var obj = document.getElementById("d2"); //элемент, куда поместим результат xmlhttp.open("GET", serverPage); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { obj.innerHTML = xmlhttp.responseText; //про innerHTML знаешь } } xmlhttp.send(null); } </b> 4) Осталось написать код скрипта обработки makeselect.php: Код: php <b> <?php //header("Content-type: text/html; charset=windows-1251"); - если будет нужен вывод русских букв $v = $_REQUEST['v']; $o = "<select id=\"selv\">"; // в зависимости от значения формируется выводимый select if ($v == 1) $o.= "<option value=\"1\">3</option><option value=\"2\">4</option></select>"; else $o.= "<option value=\"1\">5</option><option value=\"2\">6</option><option value=\"3\">7</option></select>"; echo $o; //"ответ сервера" ?> </b> 5) вот и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 12:14 |
|
|
start [/forum/topic.php?fid=22&fpage=395&tid=1458899]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 187ms |
0 / 0 |