За последние 24 часа нас посетил 49861 программист и 1730 роботов. Сейчас ищут 755 программистов ...

Два обработчика одной формы

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

  1. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Такая проблема - для каждой выводимой новости нужно по два отдела - флажок на удаление и кнопка передающая коммент на редактирование в форму внизу страницы (нажимаешь кнопку - появляется форма с соответствующим сообщением). Вот значит цикл

    PHP:
    1.        
    2. <form method="POST" action="delcomm.php">
    3. <?
    4. for ($i=1;$i<=$total_new_com;$i)
    5. {
    6. while ($rw = mysql_fetch_array($rs))
    7. {
    8. //Выбираем название новости
    9. $head = "SELECT head, id FROM newslent
    10.         WHERE id=".$rw['id_news']."";
    11. $res = mysql_query($head);
    12. $row = mysql_fetch_array($res);
    13.  ?>
    14.  <tr align=center>
    15.    <?php
    16.    // Выводим коммент жирным или обчным шрифтом в зависимости от того, старый он или новый
    17.    if (($rw['new']=='new'))
    18.    echo "
    19.   <th>".$i++."</th>
    20.   <th>".$rw['name_com']."</th>
    21.   <th align=left>".$rw['comm']."</th>
    22.   <th>".$rw['date_reg']."</th>
    23.   <th><a href=editcommentform.php?id=".$row['id'].">".$row['head']."</a></th>
    24.   ";
    25.    else echo"
    26.   <td>".$i++."</td>
    27.   <td>".$rw['name_com']."</td>
    28.   <td align=left>".$rw['comm']."</td>
    29.   <td>".$rw['date_reg']."</td>
    30.   <td><a href=editcommentform.php?id=".$row['id'].">".$row['head']."</a></td>
    31.   ";
    32.    ?>
    33.    
    34.    <td width=40><?//Здесь должна была быть та самая форма?>
    35.    </td>
    36.    <td>
    37.        <input type="hidden" name="id_news" value="<?php echo $rw['id_news']?>">
    38.        <input type="hidden" name="newcomm" value="1">
    39.        <input type="checkbox" name="id[]" value="<?php echo $rw['id']?>">
    40.  
    41.  <?
    42. }}//К О Н Е Ц цикла
    43. ?>
    44.    </td>
    45.  </tr>
    46.  </table>
    47.      
    48.      <input type="submit" value="Удалить">
    49.      </form>
    50.  
    51. <?
    Как видите цикл "обрамлён" формой с чекбоксом.

    А вот форма(кнопка) для отправки коммента на редактирование:

    HTML:
    1. <form method="POST" action="newcomments.php" style="display:inline">
    2.        <input type="submit" name="edit" value="Р" title="Редактировать коментарий">
    3.        <input type="hidden" name="date_reg" value="<?php echo $rw['date_reg']?>">
    4.        <input type="hidden" name="name_com" value="<?php echo htmlspecialchars($rw['name_com'])?>">
    5.           <input type="hidden" name="comm" value="<?php echo htmlspecialchars($rw['comm'])?>">
    6.           <input type="hidden" name="id" value="<?php echo $rw['id']?>">
    7.        <input type="hidden" name="id_news" value="<?php echo $rw['id_news']?>">
    8.        <input type="hidden" name="newcomm" value="1">
    9.      </form>
    Что делать? Если объединить всё в одну форму, то как назначать какие скрытые поля какому обработчику нужно отправлять? И как вообще сделать, чтобы у одной формы было два обработчика?
     
  2. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Пожалуйста! Очень нужна помощь!
    Я объединил две формы в одну. И тут встала такая проблема - для чекбокса нужна только одна форма (и это обязательно), а для кнопок редактирования - одна форма для одной кнопки. Так как можно использовать лишь одну форму, я подумал, что можно имя и текст коммента тоже записывать в массив, а индексами будут служить id комментов.

    Подскажите, как правильно записать в массив имя и как потом из массива вытаскивать нужное.
    Это в цикле:

    PHP:
    1. <input type="hidden" name="name_com['$rw['id']']" value="<?php echo htmlspecialchars($rw['name_com'])?>">
    А это поле, в которое помещается имя при нажатии на кнопку:

    <td><input type="text" name="name_com" size=50% value="<?echo #З Д Е С Ь нужно вытаскивать имя из массива>"></td>