Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > PHP > Выподающий список


Автор: margo 27.07.04, 05:25
Нужно написать страничку на ПХП в которой будет несколько выподающих списков и в зависимости от того какой пункт выбран в первом списке зависят пункты в следующих. Вопрос как обработать выбор пункта из выподающего списка, наверное с обновлением этойже страницы. Тоесть как обновить страницу при выборе пункта в списке. желательно примерчик ;)
Спасибо!

Автор: Argentum 27.07.04, 05:34
Если я правильно понял вопрос, то при выборе пункта надо загружать эту же страницу, передав ей значение выбора, т.е.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    <a href="your_page.php?choice=1">Первый пункт</a>

Далее в PHP принимаешь этот параметр методом get и строишь свои меню дальше.

Автор: margo 27.07.04, 05:55
а можно по подробнее примерчик, то както не получаецца :)

Автор: Argentum 27.07.04, 06:07
Что именно поподробнее? Отправка должна быть понятна... приём:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     if(isset($_GET['choice']) {$ch=$_GET['choice'];}

Автор: margo 27.07.04, 06:14
например
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    script>
    function whazzup() {
    monsters.selected.value=monsters.race.value;
    }
    </script>
    <?
    $a;
    echo "<form name='monsters'>";
    echo "<select name='race' onchange='whazzup();'>";
    echo "<option value='elf'>elf";
    echo "<option value='hobbit'>hobit";
    echo "<option value='uruk-hai'>uruk-hai";
    echo "</select>";
    echo "</form>";
    ?>

нашел только такой пример где выбранное значение передается в едит, а как например передать его в $a ? чтоб потом if($a == 'elf') и так далее

Автор: Argentum 27.07.04, 06:28
Так ты через select! Тогда просто:


<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     if(isset($_POST['monsters']) {$ch=$_POST['monsters'];}


В переменной $ch будет находится значение elf, hobbit или uruk-hai

Кстати, ты должен в форме указать метод передачи. Я дал пример post.

Автор: margo 27.07.04, 06:36
и куда ее разместить, ты можешь показать весь код от начала до конца на моем примере?
а то у меня не отрабатывается вообще
заранее благодарен!

Автор: Argentum 27.07.04, 06:47
Да...я там ошибся... Этот код проверил - рабочий:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    <?
    echo "<form method='POST' name='monsters'>";
    echo "<select name='race' onchange='whazzup();'>";
    echo "<option value='elf'>elf";
    echo "<option value='hobbit'>hobit";
    echo "<option value='uruk-hai'>uruk-hai";
    echo "</select>";
    echo "<input type='submit' value='ok'>";
    echo "</form>";
     if(isset($_POST['race']))
     {$ch=$_POST['race'];
     echo "Your choice is ".$ch;}
    ?>

Автор: margo 27.07.04, 06:56
мне как раз нужно без кнопки, тоесть при выборе из списка сразу происходит обновление данных

Автор: Rom@nych 27.07.04, 07:03
Вот без кнопки. После изменения идёт сабмит.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    <?
    echo "<form method='POST' name='monsters'>";
    echo "<select name='race' onchange='document.forms[\"mosters\"].submit();'>";
    echo "<option value='elf'>elf";
    echo "<option value='hobbit'>hobit";
    echo "<option value='uruk-hai'>uruk-hai";
    echo "</select>";
    echo "</form>";
     if(isset($_POST['race']))
     {$ch=$_POST['race'];
     echo "Your choice is ".$ch;}
    ?>

Автор: Argentum 27.07.04, 07:04
Хм... без кнопки... Возможно, с этим справится Javascript, но я в этом не силён.
А по чему без конпки-то. Пользователь может ошибиться... Обычно делают так, чтобы пользователь точно выбрал пункт, потом нажал и тогда только пошёл запрос на сервер. Обновления страницы всё равно не избежать, если ты на PHP хочешь

Автор: margo 27.07.04, 07:10
страница получится слишком загружена кнопками, на странице предпологается 2 выподающих списка один просто список и два едита и все это должно подтвердаться на внесение в базу одной кнопкой. в моем примере есть как раз джава скрипт но для себя я его переделать не смог.. :wall:
спасибо за помощь, вопрос остается открытым....

Автор: Машина 27.07.04, 07:24
А ведь можно и без перезагрузки, в JS нарезать.

Автор: margo 27.07.04, 07:29
Цитата TrivialCore @ 27.07.04, 07:24
А ведь можно и без перезагрузки, в JS нарезать.

как?? :blink:

Автор: Машина 27.07.04, 13:33
Посмотри ету тему Добавить <option> в <select>

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)