Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форма в пхп
 
 автор: max90   (17.06.2012 в 15:52)   письмо автору
 
 

Здравствуйте. Имеется код:
echo <<<HTML
<form method="post" action="">
<table width="100%" border="0">
  <tr>
    <td width="22%"><p><strong>URL</strong></p></td>
    <td><input name="save_conf[site]" type="text" class="f_input" value="" size="77" />
    </td>
  </tr>
  <tr>
    <td><br><input class=buttons type=submit value="галерея >>">&nbsp;&nbsp;<input type=hidden name="action" value="gallery">
    <td><br><input class=buttons type=submit value="Как есть >>">&nbsp;&nbsp;<input type=hidden name="action" value="kak_est"></td>
</td>
  </tr>
</table>
</form>
HTML;
die ();

if( $_REQUEST['action'] == "kak_est" ) {....}
if( $_REQUEST['action'] == "gallery" ) {....}
На странице две кнопки, при нажатии на которые выполняются различные действия.
Проблема в том что если нажать на любую кнопку, выполняется код что в условии if( $_REQUEST['action'] == "kak_est" ) {....}. var_dump($_REQUEST['action']) показывает string(7) "kak_est". Как сделать, чтобы при нажатии на кнопку "галерея", выполнялось условие if( $_REQUEST['action'] == "gallery" ) {....}?

  Ответить  
 
 автор: confirm   (17.06.2012 в 16:34)   письмо автору
 
   для: max90   (17.06.2012 в 15:52)
 

Первое - у вас ошибка в html-коде, не закрыта ячейка во второй строке.
Второе - получаете постоянно "kak_est" потому, что скрытые поля имеют одно и тоже имя, а на сервере это будет массив, а в массиве не могут быть два одинаковых ключа, поэтому первый ключ "action" примет значение второго ключа "action". Если вы полагаете, что нажав на первую кнопку submit, вы получите первое скрытое поле, а второй submit, потому, что имена им дали одинаковые , то вы ошибаетесь.
Третье - выбрасывайте скрытые поля, дайте кнопкам submit имена "action", но как элементы массива с установленными ключами. На сервере вы будете получать массив $_POST, и проверив значение его ключа "action", будете знать что выбрал пользователь. Детектировать значения типа "kak_est", ну это...
<?
if($_POST) {
   echo 
'<pre>';
   
print_r($_POST);
   echo 
'<pre><br>';
   echo 
key($_POST['action'])>'Выбрано Как есть' 'Выбрано Галерея';
   exit; 
}
?>
<form method="post" action=""> 
<table width="100%" border="0"> 
  <tr> 
    <td width="22%"><strong>URL</strong></td> 
    <td><input name="save_conf[site]" type="text" class="f_input" value="" size="77" /> 
    </td> 
  </tr> 
  <tr> 
    <td><input class="buttons" type="submit" name="action[1]" value="Галерея >>" /></td> 
    <td><input class="buttons" type="submit" name="action[2]" value="Как есть >>" /></td> 
</td> 
  </tr> 
</table> 
</form>

  Ответить  
 
 автор: max90   (17.06.2012 в 16:51)   письмо автору
 
   для: confirm   (17.06.2012 в 16:34)
 

Благодарю за помощь

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования