За последние 24 часа нас посетили 17946 программистов и 1614 роботов. Сейчас ищут 1505 программистов ...

Multi ввод

Тема в разделе "Решения, алгоритмы", создана пользователем EvghenyB, 19 фев 2008.

  1. EvghenyB

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

    С нами с:
    19 фев 2008
    Сообщения:
    3
    Симпатии:
    0
    Hi all

    Есть форма.
    Форма содержит:
    1. N select объектов (выпадающий список)
    2. Каждый select объект содержит N позиций

    Объекты select формируются из таблицы polls
    Позиции для каждого select объекта - из таблицы options

    Схематично выгляден так:

    таблица polls

    HTML:
    1. pollid    title
    2. 1    Where are you from?
    3. 2    How old are you?
    таблица options

    HTML:
    1. id   pollid    title    votes
    2. 1      1       USA       1
    3. 2      1       EU         5
    4. 3      1       other     8
    5. 4      2       >18       1
    6. 5      2       18-25    8
    Фрагмент исходного кода формирования формы и объектов.

    PHP:
    1. $userdata = mysql_query("select pollid, title from polls where status = 'off'");
    2.        
    3.  
    4. ?>
    5. <form action="<?= $_SERVER['PHP_SELF']; ?>" method="post" name="frmPoll">
    6. <? while ($userdatarows = mysql_fetch_array($userdata)) {
    7.  
    8.          $pollid = $userdatarows['pollid'];
    9.  
    10.          $userdataoption = mysql_query("select optionid, options, order_id from options where pollid='$pollid' order by order_id asc");
    11. ?>
    12.  
    13.     <tr bgcolor="#33DDFF" class="text">
    14.         <td height="25" colspan="2" align="center"><b><?= $userdatarows['title']; ?></b></td>
    15.     </tr>
    16.  
    17.     <tr class="text">
    18.         <td width="30%" align="center" height="25">
    19.         <select name = "<?= $userdatarows['title'];?>" id = "<?= $userdatarows['title'];?>">
    20.  
    21. <?
    22.          while ($userdataoptionrows = mysql_fetch_array($userdataoption)) {
    23.          ?>
    24.          
    25.  
    26.          <option value="<? echo $userdataoptionrows['optionid'];?>"><? echo $userdataoptionrows['options'];?></option>
    27.  
    28.  
    29.      </tr>
    30. <?
    31. }
    32. ?>
    33.          </td>
    34.          
    35.  
    36.     </select>
    37.  
    38. <?
    39.  
    40. }
    41.  
    42.  
    43.  
    44. ?>
    45.  
    Задача:
    необходима запись выбранных значений в таблицу options.
    Т.о. что бы занести в таблицу выбранную позицию для каждого select объекта,
    следующим образом: [sql]update options set votes=votes+1 where pollid = "id select объекта" and optionid = "id выбранного значения select объекта"[/sql]

    Я думаю, решение лежит в цикле. Но не понимаю, как это реализовать.
     
  2. EvghenyB

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

    С нами с:
    19 фев 2008
    Сообщения:
    3
    Симпатии:
    0
    Задача решена с помощью элемента hidden и массивов.

    Regards!