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

Форум PHP

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

 

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

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

тема: Несколько кнопок в одной форме
 
 автор: kolobokk   (19.04.2005 в 12:38)   письмо автору
 
 

Народ скажите пож-та, как сделать чтобы из одной формы сделать несколько кнопок методом пост, так чтобы они выполняли разный action

<form name="form1" method="post" action="tst.php">

............................................

      <input type="submit" name="Submit" value="Submit">
      <input type="submit" name="Submit2" value="Submit">
      <input type="submit" name="Submit3" value="Submit">
        </form>

   
 
 автор: cheops   (19.04.2005 в 12:59)   письмо автору
 
   для: kolobokk   (19.04.2005 в 12:38)
 

Вы можете воспользоваться каскадным обработчиком, подробнее о котором можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1504

   
 
 автор: kolobokk   (19.04.2005 в 13:47)   письмо автору
 
   для: cheops   (19.04.2005 в 12:59)
 

тема интересная, но не со всем то что я ищу.
Вернее там есть фраза:
1) Создание в форме несколько кнопок, а в обработчике отслеживать какая из кнопок нажата.

но вот как это реализуется не написано :(

   
 
 автор: Axxil   (19.04.2005 в 14:15)   письмо автору
 
   для: kolobokk   (19.04.2005 в 13:47)
 

А что мешает например так сделать:
файл tst.php

<?
 
if (isset($Submit)){
  
// обработчик для первой кнопки
 
}
if(isset(
$Submit2)){
 
// обработчик для второй кнопки
}
........
?>

   
 
 автор: Krona-sm.com   (08.11.2005 в 21:13)   письмо автору
 
   для: Axxil   (19.04.2005 в 14:15)
 

А как быть, если вместо кнопок submit рисунки "image", а?

   
 
 автор: human   (10.11.2005 в 07:36)   письмо автору
 
   для: kolobokk   (19.04.2005 в 12:38)
 

Нужно сделать так:


<form name="form1" method="post" action="tst.php"> 

............................................ 

      <input type="submit" name="Submit" value="Кнопка1"> 
      <input type="submit" name="Submit" value="Кнопкаt2"> 
      <input type="submit" name="Submit" value="Кнопка3"> 
        </form> 


А в обработчике проверять значение переменной $submit


switch ($submit)
   {
    case "Кнопка1":         
     func1();
      break;

   case "Кнопка2":         
     func2();
      break;

  case "Кнопка3":         
     func3();
      break;
  }

   
 
 автор: Krona-sm.com   (10.11.2005 в 20:47)   письмо автору
 
   для: human   (10.11.2005 в 07:36)
 

И всетаки, может кто-нибудь сказать как быть, если в место нескольких кнопок реализованы картинки?

Например:

      
<form name="form1" method="post" action="<? $PHP_SELF?>"> 
......................................
<input type="image" name="Submit" value="Кнопка1">
<input type="image" name="Submit" value="Кнопка2">
<input type="image" name="Submit" value="Кнопка3">

   
 
 автор: human   (11.11.2005 в 08:09)   письмо автору
 
   для: Krona-sm.com   (10.11.2005 в 20:47)
 

При использовании тега <input type=image> атрибут value в форме не передается (поэтому его указывать бесполезно), а вместо этого передается пара значений - координаты пикселя, по которому щелкнули мышкой.
Поэтому возможны два варианта:

1. Если несколько кнопок нарисовать на одной общей картинке, до достаточно проверять диапазон X,Y для определения выбранной кнопки.

2. Если же каждая кнопка нарисована на отдельной картинке, то координаты будут передаваться в пределах каждой картинки, т.е. они не будут уникальными.
Это показано на примере ниже (он работающий - можно проверить).

В этом случае кнопкам придется дать разные имена: name1, name2 и т.д.,
а в обработчике проверять - какая именно переменная получена из формы ($name1_x, $name2_x и т.д.) , при этом сами значения полученных координат никакой ценности не имеют...



$progrname = basename($PHP_SELF);

if(isset($knopka) == false)
{
echo "<form action=\"$progrname\" method=\"POST\">

<input type=image src=\"knopka1.jpg\" name=\"knopka1\">
<input type=image src=\"knopka2.jpg\" name=\"knopka2\">
<input name=\"knopka\" type=\"hidden\" value=1>

</form>";
}
else
{
  echo "x1= $knopka1_x<br>";
  echo "y1= $knopka1_y<br>";

  echo "x2= $knopka2_x<br>";
  echo "y2= $knopka2_y<br>";
}

   
 
 автор: Krona-sm.com   (11.11.2005 в 13:41)   письмо автору
 
   для: human   (11.11.2005 в 08:09)
 

БОЛЬШОЕ спасибо!

   
Rambler's Top100
вверх

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