ФорумПрограммированиеPHP для идиотов → Если выбираешь 1, то одно, если 2...

Если выбираешь 1, то одно, если 2...

  • ervlen

    Сообщения: 208 Репутация: N Группа: Кто попало

    Spritz 2 августа 2008 г. 17:58

    <?php
    $query = "SELECT `name_no` FROM `nnm_noname`";
    $res = mysql_query($query);
    ?>
    <select>
    <option value='null'>- ВЫБИРАЙТЕ -</option>
    <?php
    while($row = mysql_fetch_array($res)){
    echo "<option value=''>" . $row['name_no'] . "</option>\n";
    }
    ?>
    </select>


    Мне нужно чтобы если я выбираю првый вариант, то чтобы открывалась одна форма, если 2 то другая… и так далее… Нашел в интернете JS проктически то что мне нужно вот:

    <html>
    <head>
    <title>Изменение полей формы в зависимости от выбора пользователя.</title>
    <script language="javascript">
    function Display(which) {
    ma=document.getElementById("mail");
    em=document.getElementById("email");
    ph=document.getElementById("phone");
    if (which=="mail") ma.style.display="block";
    else ma.style.display="none";
    if (which=="email") em.style.display="block";
    else em.style.display="none";
    if (which=="phone") ph.style.display="block";
    else ph.style.display="none";
    }
    </script>
    </head>
    <body>
    <form name="form1">
    <strong>Как с вами связываться?</strong><br>
    <input type="radio" name="type" value="mail" checked onClick="Display('mail');">Почтой
    <input type="radio" name="type" value="email" onClick="Display('email');">E-mail
    <input type="radio" name="type" value="phone" onClick="Display('phone');">Телефон<br>
    <div ID="mail" style="display:block;">
    <b>Адрес:</b> <input type="text" name="address" size="25"><br>
    <b>Город:</b> <input type="text" name="city" size="14">
    <b>страна:</b> <input type="text" name="state" size="5">
    <b>Индекс:</b> <input type="text" name="zip" size="9">
    </div>
    <div ID="email" style="display:none">
    <b>E-mail:</b><input type="text" name="email" size="25">
    </div>
    <div ID="phone" style="display:none">
    <b>Телефон:</b><input type="text" name="phone" size="15">
    </div>
    </form>
    </body>
    </html>



    Но у меня ведь данные из бд… Онклик в этой строчке

    echo "<option value=''>" . $row['name_no'] . "</option>\n";

    прописать вот так:

    echo "<option value='' onClick=\"Display(" . $row['name'] . ");\">" . $row['name'] . "</option>\n";

    а как сделать все остальное?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 2 августа 2008 г. 18:09, спустя 10 минут 54 секунды

    ervlen, не совсем понятно что вы хотите.
    * Во-первых вы можете получать все данные в самом начале и скрывать их (display:none)
    * Во-вторых можете формировать js-массив
    * В третьих использовать аякс
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • ervlen

    Сообщения: 208 Репутация: N Группа: Кто попало

    Spritz 2 августа 2008 г. 18:18, спустя 9 минут 26 секунд

    ЫЫы… Я ничего не понял… Мне нужно форму для ханесения пользователями… При выборе первого, чтобы менялась форма… Вот пример формы я написал… А как сделать я хз! ПОМОГИТЕ
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 2 августа 2008 г. 18:24, спустя 5 минут 56 секунд

    Ну вопервых не onClick,а onChange!

    <?php
    $query = "SELECT `name_no` FROM `nnm_noname`";
    $res = mysql_query($query);
    ?>
    <form>
    <select name="form_on_of"  onChange="Display(this.form)">
     <option value='null'>- ВЫБИРАЙТЕ -</option>
     <?php
       while($row = mysql_fetch_array($res)){
         echo "<option value='".$row['name']."'>" . $row['name_no'] . "</option>\n";
       }
     ?>
    </select>
    </form>



    function Display(seln) {

    selNum = seln.form_on_of.selectedIndex;
    which = seln.form_on_of.options[selNum].value;

     ma=document.getElementById("mail");
     em=document.getElementById("email");
     ph=document.getElementById("phone");
     if (which=="mail") ma.style.display="block";
       else ma.style.display="none";
     if (which=="email") em.style.display="block";
       else em.style.display="none";
     if (which=="phone") ph.style.display="block";
       else ph.style.display="none";
    }


    не проверял но так должно работать
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 2 августа 2008 г. 18:25, спустя 1 минуту 23 секунды

  • ervlen

    Сообщения: 208 Репутация: N Группа: Кто попало

    Spritz 2 августа 2008 г. 18:31, спустя 5 минут 34 секунды


    Ну вопервых не onClick,а onChange!

    <?php
    $query = "SELECT `name_no` FROM `nnm_noname`";
    $res = mysql_query($query);
    ?>
    <form>
    <select name="form_on_of"  onChange="Display(this.form)">
     <option value='null'>- ВЫБИРАЙТЕ -</option>
     <?php
       while($row = mysql_fetch_array($res)){
         echo "<option value='".$row['name']."'>" . $row['name_no'] . "</option>\n";
       }
     ?>
    </select>
    </form>



    function Display(seln) {

    selNum = seln.form_on_of.selectedIndex;
    which = seln.form_on_of.options[selNum].value;

     ma=document.getElementById("mail");
     em=document.getElementById("email");
     ph=document.getElementById("phone");
     if (which=="mail") ma.style.display="block";
       else ma.style.display="none";
     if (which=="email") em.style.display="block";
       else em.style.display="none";
     if (which=="phone") ph.style.display="block";
       else ph.style.display="none";
    }


    не проверял но так должно работать

    Чет я не монял что в итоге получиться
  • ervlen

    Сообщения: 208 Репутация: N Группа: Кто попало

    Spritz 2 августа 2008 г. 18:32, спустя 38 секунд


    http://pyha.ru/forum/topic/86.0

    Статья нужная, но всеравно там нет как прикрутить БД к этому!!!
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 2 августа 2008 г. 18:41, спустя 9 минут 41 секунду

    В скрипте нужно вытащить данные из бд, и в переменную $html (которая тут http://pyha.ru/forum/topic/86.0) нужно положить данные из бд. Вообще вариантов куча
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 5 августа 2008 г. 13:35, спустя 2 дня 18 часов 54 минуты

    А почему нельзя нарисовать просто две формы а потом просто показывать их в зависимости от варианта. 2 или 1.

    так например.

    <?
    if ($variant == 1){
    echo 'Код формы… Табличка например';
    }

    // и так же вывести табличку когда вариант равен 2
    ?>
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 5 августа 2008 г. 14:53, спустя 1 час 17 минут 18 секунд

    smv, такой задачи не стояло… http://pyha.ru/forum/topic/1007.msg13870#new
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!