Одесса: 6°С (вода 9°С)
Киев: 3°С
Львов: 7°С

Тема: <select> switch if

Ответить в теме
Показано с 1 по 5 из 5
  1. Вверх #1

    По умолчанию <select> switch if

    Доброго времени суток всем, у меня тут проблема с php, прошу помощи.
    есть несколько кнопок
    <?php
    echo '<form action="" method="post" name="бла-бла">
    <input name="а" type="submit" value="А" />
    <input name="б" type="submit" value="Б" />
    <input name="в" type="submit" value="В" />
    </form>';
    при нажатии на определённую кнопку, появляется выпадающий список

    if ($_POST ['a']=='A')
    {
    ?>
    <form method=POST action="" name="имя">
    <select name=имя_а size=6>
    <option value=а1>100</option>
    <option value=а2>200</option>
    <option value=а3>300</option>
    </select>
    </form>

    если нажата кнопка "б" то другой выпадающий список, это понятно. Предположим сейчас $_POST ['a']=='A' и мы видим этот список.
    теперь по этому выпадающему списку, мне надо пройтись ещё и switch по выбранному пункту из выпадающего списка и вывести выбранный пункт на экран.

    switch (...)
    {
    case а1: $val=100; echo $val; break;
    case а2: $val=200; echo $val; break;
    }

    не могу понять что нужно передать в switch (...) , переменных в выпадающем нету, switch ( $_POST ['a']=='A') результатов не даёт, как и switch (имя_формы_выпадающего_списка) ...буду благодарен за помощь.


  2. Вверх #2
    в switch (...) должна быть как раз переменная, которая содержит ваше а1 или а2
    если выпадающий список сделана при помощи <select></select> то выбранный пункт будет равен значению переменной имени селекта.
    <SELECT NAME="OS" MULTIPLE>
    <OPTION VALUE="DOS">MS-DOS
    <OPTION VALUE="WinXP">MS Windows98
    <OPTION VALUE="Unix" SELECTED>UNIX
    <OPTION VALUE="WinNT">MS Windows NT
    </SELECT>
    тут $OS = "Unix"

  3. Вверх #3
    Добрый вечер! На сколько я понял,Вам нужно вывести значение из селекта, но для этого нужно его засабмитить,чтобы с него что-нибудь передалось. Если я не так что-то понял - поправьте. Ниже приведен вариант решения:
    PHP код:
    <?php
    echo '<form action="" method="post">
    <input name="a" type="submit" value="a" />
    <input name="b" type="submit" value="b" />
    <input name="c" type="submit" value="c" />
    </form>'
    ;

    if (
    $_POST ['a']=='a')
    {
    ?>
    <form method='POST' action="">
    <select name='select' size=6 onchange='this.form.submit()'>
    <option value='а1'>100</option>
    <option value='а2'>200</option>
    <option value='а3'>300</option>
    </select>
    </form>
    <?php
    }
    if(
    $_POST['select']){
        echo 
    $_POST['select'];
    }
    ?>

  4. Вверх #4
    ®odman-9
    Вы всё правильно поняли, то что засабмитить это понятно, но я искал решение именно без сабмита и ваше onchange='this.form.submit() мне очень помогло, правда теперь если size=1 а не 6, то сам выбранный пункт в списке пропадает, и такая же фигня с радиобатанном, когда применяешь onchange='this.form.submit(), что б не сабмитить, переменная выводится, всё в порядке, но точка из кружка пропадает.. Но это для меня не принципиально.. Спасибо.

  5. Вверх #5
    теперь понял, тогда в таком случае нужно проверку ставить на приходящее значение и дальше чекать либо селектить:
    PHP код:
    <?php 
    echo '<form action="" method="post"> 
    <input name="a" type="submit" value="a" /> 
    <input name="b" type="submit" value="b" /> 
    <input name="c" type="submit" value="c" /> 
    </form>'


    if (
    $_POST ['a']=='a'

    ?> 
    <form method='POST' action=""> 
    <select name='select' size=6 onchange='this.form.submit()'> 
    <option value='а1'>100</option> 
    <option value='а2'>200</option> 
    <option value='а3'>300</option> 
    </select> 
    </form> 
    <?php 

    if(
    $_POST['select']){ 
    ?>
    <form method='POST' action=""> 
    <select name='select' size=6 onchange='this.form.submit()'>
    <?php
    for($i=1;$i <= 3;++$i){
    echo 
    '<option value="а'.$i.'"';
    if(
    $_POST['select'] == 'a'.$i) echo ' selected ';
    echo 
    '>'.$i.'00</option>';
    }
    ?>
    </select> 
    </form> 
    <?php

    ?>
    аналогично с радиобоксами:
    PHP код:
    <?php
    if($_POST['r1']){
    echo 
    '<input type="radio" name="r1" value="123"';
    if(
    $_POST['r1'] == '123') echo ' checked ';
    echo 
    '/>';
    echo 
    '<input type="radio" name="r1" value="223"';
    if(
    $_POST['r1'] == '223') echo ' checked ';
    echo 
    '/>';
    echo 
    '<input type="radio" name="r1" value="323"';
    if(
    $_POST['r1'] == '323') echo ' checked ';
    echo 
    '/>';
    }
    ?>
    Последний раз редактировалось ®odman-9; 21.12.2011 в 22:39.


Ответить в теме

Похожие темы

  1. Ответов: 24
    Последнее сообщение: 14.12.2012, 01:14
  2. Продам Cable modem Motorola и Switch Planet на 8 портов
    от Piston2010 в разделе Продам
    Ответов: 23
    Последнее сообщение: 06.06.2012, 10:03
  3. switch user windows 7
    от rupreht в разделе Интернет :: технические вопросы
    Ответов: 3
    Последнее сообщение: 05.05.2011, 00:55
  4. WindowsXP switch user
    от _Pendalf_ в разделе Программное обеспечение
    Ответов: 4
    Последнее сообщение: 01.02.2006, 18:22

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения