За последние 24 часа нас посетили 23570 программистов и 1725 роботов. Сейчас ищут 756 программистов ...

Выпадающий список. Как идентифицировать № позиции списка.

Тема в разделе "PHP для новичков", создана пользователем vitalill, 25 янв 2009.

  1. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    Здесь показан пример, как получить VALUE выбранной позиции списка.
    Вопрос, - а как в зависимости от выбранной позиции, вызвать её переменную в echo, а не всего SELECT (попросту как формировать таблицы яблок и апельсинов, в зависимости от выбора в списке)

    <FORM ACTION="2.php" METHOD="POST">
    <SELECT NAME="preference">
    <OPTION value = "Яблоки">Яблоки
    <OPTION value = "Апельсины">Апельсины
    </SELECT>
    <P>
    <INPUT TYPE="submit" VALUE="Отправить запрос!">
    </FORM>


    обработчик в файле 2.php

    <?
    echo '<br>'.$_POST['preference'];
    ?>
     
  2. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    кто-нить понял вопрос?
     
  3. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    я понял.
    как с помощью выпадающего списка, динамически формировать ту или иную таблицу, в зависимости от выбраной позиции в списке?
     
  4. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Все гораздо проще



    HTML:
    1.  
    2. <FORM ACTION="2.php" METHOD="POST">
    3. <SELECT NAME="preference">
    4. <OPTION value = "0">Фрукты</OPTION>>
    5. <OPTION value = "1">Апельсины</OPTION>
    6. <OPTION value = "2">Яблоки</OPTION>
    7. </SELECT>
    8. <P>
    9. <INPUT TYPE="submit" VALUE="Отправить запрос!">
    10. </FORM>
    11.  
    обработчик в файле 2.php
    PHP:
    1.  
    2. <?
    3. echo '<br>'.$_POST['preference'];
    4. ?>
    5.  
    Теперь Вы должны получить ИД Апельсин = 1 , Яблоки = 2.
    Создавайте запрос к БД

    PHP:
    1.  
    2. <?
    3. $sql = ("SELECT * FROM table WHERE id='".$_POST['preference']."'");
    4. ?>
    5.  
    6.  
     
  5. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    Спасибо но, вверху это же самое.
    Нужно не обращение к базе, а просто в зависимости
    HTML:
    1. value = "1"
    или
    HTML:
    1. value = "2"
    выбрать
    или
    PHP:
    1. echo '<table><tr><td>Цитрусовые</td></tr></table>';
    или
    PHP:
    1. echo '<table><tr><td>Многолетние</td></tr></table>';
    2.  
     
  6. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Уважаемый Виталий сформулируйте свой вопрос должным уровнем, опишите конкретно что Вам нужно от скрипта!
     
  7. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    чем проще вопрос, тем сложнее его сформулировать.

    Вот перебрав 500 вариантов, сумел, наконец:
    HTML:
    1.  
    2. <FORM ACTION="select_value.php" METHOD="POST">
    3. <SELECT NAME="preference">
    4. <OPTION value = "1">Яблоки
    5. <OPTION value = "2">Апельсины
    6. <OPTION value = "3">Мандарины
    7. <OPTION value = "4">Орехи
    8. <P>
    9. <INPUT TYPE="submit" VALUE="Отправить запрос!">
    10. </FORM>
    11.  
    select_value.php

    PHP:
    1.  
    2. <?php if($_POST[preference]==1)
    3. echo "<table><tr><td>Цитрусовые известны со времён...</td></tr></table>";
    4. ?>
    5. <?php if($_POST[preference]==2)
    6. echo "<table><tr><td>Многолетние садовые культуры...</td></tr></table>";
    7. ?>
    8. <?php if($_POST[preference]==3)
    9. echo "<table><tr><td>Мандарины символ княжества Монако...</td></tr></table>";
    10. ?>
    11. <?php if($_POST[preference]==4)
    12. echo "<table><tr><td>Орехи самы полезный продукт из...</td></tr></table>";
    13. ?>
    14.  
    теперь нужно придумать цикл
     
  8. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    так компактнее:

    PHP:
    1.  
    2. <?php if($_POST[preference]==1) {
    3.   echo '<table><tr><td>Цитрусовые известны со времён...</td></tr></table>';}
    4. elseif ($_POST[preference]==2) {
    5.   echo '<table><tr><td>Многолетние садовые культуры...</td></tr></table>';}
    6. elseif ($_POST[preference]==3) {
    7.   echo '<table><tr><td>Мандарины символ княжества Монако...</td></tr></table>';}
    8. elseif ($_POST[preference]==4) {
    9.   echo '<table><tr><td>Орехи самы полезный продукт из...</td></tr></table>';}
    10.  ?>
    11.  
     
  9. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Тогда уж так :)
    HTML:
    1.  
    2. <FORM ACTION="select_value.php" METHOD="POST">
    3.  <SELECT NAME="preference">
    4.  <OPTION value = "Яблоки">Яблоки
    5.  <OPTION value = "Апельсины">Апельсины
    6.  <OPTION value = "Мандарины">Мандарины
    7.  <OPTION value = "Орехи">Орехи
    8.  </SELECT>
    9.  <P>
    10.  <INPUT TYPE="submit" VALUE="Отправить запрос!">
    11.  </FORM>
    12.  
    13.  

    PHP:
    1.  
    2. <?
    3. echo "<table><tr><td>".$_POST['preference']."</td></tr></table>";
    4. ?>
    5.  
    В твоем скрипте предусмотрена работа с БД или нет?
     
  10. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    Обратите внимание на текст. В том-то и дело, что нужна замена.
    В общем без цикла уже работает.
    Может кто знает как циклом сделать это:

    PHP:
    1.  
    2.  <?php if($_POST[preference]==1) {
    3.    echo '<table><tr><td>Цитрусовые известны со времён...</td></tr></table>';}
    4.  elseif ($_POST[preference]==2) {
    5.    echo '<table><tr><td>Многолетние садовые культуры...</td></tr></table>';}
    6.  elseif ($_POST[preference]==3) {
    7.    echo '<table><tr><td>Мандарины символ княжества Монако...</td></tr></table>';}
    8.  elseif ($_POST[preference]==4) {
    9.    echo '<table><tr><td>Орехи самы полезный продукт из...</td></tr></table>';}
    10.   ?>
     
  11. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    vitalill
    Объясните в чем динамизм вашего скрипта, что он Вам должен сделать в цикле?
    Если Вам нужно таблицу циклом нарисовать то используйте цикл FOR только Вам нужно узнать два параметра
    1. Количество колонок
    2. Количество строк


    PHP:
    1.  
    2. <?php
    3. $rows = "3";
    4. $cols = "5";
    5.  
    6. echo "<table border=1 width=50% align=center>";
    7. for ($i = 0; $i < $rows; $i++)
    8. {
    9.     echo "<tr>";
    10.     for ($j = 0; $j < $cols; $j++)
    11.     {
    12.         echo "<td>text</td>";
    13.     }
    14.     echo "</tr>";
    15. }
    16. echo "</table>";
    17. ?>
    18.  
    19.  
     
  12. vitalill

    vitalill Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    27
    Симпатии:
    0
    Спасибо, разобрался, вы правы нужен цикл for, чтобы перебрать позиции.