[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Последовательный выбор в форме
wfire
Подскажите, пожалуйста, как можно реализовать следующее:
два выпадающих списка в форме. Содержимое второго списка зависит от выбора сделанного юзером в первом. При этом форму перезагружать нельзя.



Спустя 2 часа, 27 минут, 17 секунд (2.02.2007 - 08:53) md5 написал(а):
ищи по слову: ajax

для такого же я использовал prototype,тока у меня 5 списков было...

Спустя 2 часа, 56 минут, 22 секунды (2.02.2007 - 11:50) loginsan написал(а):

Спустя 25 минут, 17 секунд (2.02.2007 - 12:15) wfire написал(а):
1) Заведи 2 слоя - это что значит? слой - в смысле layer?
и можно привести целиком коды обоих файлов?

Спустя 17 минут, 15 секунд (2.02.2007 - 12:32) loginsan написал(а):
Слои - это div. Немного косячно перенеслись коды из старых тем, придется повторить:
1) Файл html с формой:

HTML
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head><title>Пример связки Ajax и Php</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
  5. <script type="text/javascript" src="functions.js"></script>
  6. </head>
  7. <div id="contain" class="formclass">
  8. <form action="./serv.php" method="post">
  9. <div id="d1"><select id="selp" name="selp" onchange="makeselect()"><option value="1">1</option><option value="2">2</option></select>
  10. </div>
  11. <div id="d2">
  12. </div>
  13. <div><input type="submit" value="Go!"/></div>
  14. </form>
  15. </div>
  16. </body>
  17. </html>


2) Файл javascript functions.js:
JavaScript
  1. //Create a boolean variable to check for a valid IE instance.
  2. var xmlhttp = false;
  3. //Check if we are using IE.
  4. try { //If the javascript version is greater than 5.
  5. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  6. }
  7. catch (e) { //If not, then use the older active x object.
  8. try { //If we are using IE.
  9. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11. catch (E) { //Else we must be using a non-IE browser.
  12. xmlhttp = false;
  13. }
  14. }
  15. //If we are using a non-IE browser, create a JavaScript instance of the object.
  16. if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
  17. xmlhttp = new XMLHttpRequest();
  18. }
  19.  
  20. function makeselect() {
  21. var val = document.getElementById("selp").value;
  22. var serverPage = "makeselect.php?v=" + val; //The page we are loading.
  23. var obj = document.getElementById("d2");
  24. xmlhttp.open("GET", serverPage);
  25. xmlhttp.onreadystatechange = function() {
  26. if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  27. obj.innerHTML = xmlhttp.responseText;
  28. }
  29. }
  30. xmlhttp.send(null);
  31. }


3)Файл makeselect.php:
PHP
  1. <?php
  2. $v = $_REQUEST['v'];
  3. $o = "<select id="selv" name="selv"><option value="1">3</option><option value="2">4</option></select>";
  4. if ($v == 2) $o = "<select id="selv" name="selv"><option value="1">5</option><option value="2">6</option><option value="3">7</option></select>";
  5. echo $o;
  6. ?>

Спустя 59 минут, 15 секунд (2.02.2007 - 13:32) tishka написал(а):
[url]
http://www.phpforum.ru/index.php?showtopic=377
[/url]

Правда на новом движке самого скрипта видно не будет, а только результат. Что ты можешь сделать: либо просмтреть код топика через свой браузер, либо найти аналогичную тему в старом форуме в разделе скрипты JavaScript


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.