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

HTML+CSS+JavaScript

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

 

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

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

тема: Значения кнопки Submit
 
 автор: tyoma_first   (08.04.2009 в 01:47)   письмо автору
 
 

Можно ли сделать так, чтобы текст на кнопке и значение, передаваемое в скрипт были различные? Например на кнопке надпись " .:: BACK ::. ", а в скрипт передавалось просто "back". Реально ли такого добиться?

  Ответить  
 
 автор: PAT   (08.04.2009 в 01:51)   письмо автору
 
   для: tyoma_first   (08.04.2009 в 01:47)
 

1. Можно
2. Реально

  Ответить  
 
 автор: tyoma_first   (08.04.2009 в 02:19)   письмо автору
 
   для: PAT   (08.04.2009 в 01:51)
 

Отлично, а как (и было бы супер если без JS)? :) Или стоит повнимательнее мануал почитать? (а то как то ближе к ночи не особенно читается :) )

  Ответить  
 
 автор: Metandrostenalon   (08.04.2009 в 07:36)   письмо автору
 
   для: tyoma_first   (08.04.2009 в 02:19)
 


<?php
print_r
($_POST);
?>
<form action="" method="post">
<input type="submit" name="back" value="::BACK::" />
</form>

  Ответить  
 
 автор: mikha   (08.04.2009 в 04:24)   письмо автору
 
   для: tyoma_first   (08.04.2009 в 01:47)
 

Лучше добавьте скрытое поле, с нужным вам значением. По нему и определяйте что вам отправлена форма. В таком случае в submit можете писать всё что угодно. Кнопка нужна будет только для отправки формы.

  Ответить  
 
 автор: tyoma_first   (08.04.2009 в 18:30)   письмо автору
 
   для: mikha   (08.04.2009 в 04:24)
 

Не совсем то... До это я делал так:

<form action="" method="post">
<input type="submit" name="submit" value="back" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
if ($_POST["submit"]=='back'){
//back button actions
}else{
//submit button actions
}
?>

Но в данном случае я был зажат тем, что надпись на кнопке была "back" и если я захочу написать "Вернуться" то и скрипт придется переделывать...
Так же, как вариант, можно делать вот так:
<form action="" method="post">
<input type="submit" name="back" value="Вернуться" />
<input type="submit" name="submit" value="Отправить" />
</form>
<?php
if (isset["back"]){
//back button actions
}else{
//submit button actions
}
?>
, но здесь я наталкиваюсь на проблему когда скрипт будет неправильно срабатывать для такой вот формы:
<form action="" method="post">
<input type="text" name="back" />
<input type="submit" name="submit" value="Submit" />
</form>

(набор полей мне заранее неизвестен). Как можно определить что значение переменной "back" было передано из кнопки, а не какого нибудь другого контрола?

  Ответить  
 
 автор: mikha   (08.04.2009 в 19:03)   письмо автору
 
   для: tyoma_first   (08.04.2009 в 18:30)
 

Ничего не понял, могу только смутно догадываться.
Вот, но это чисто для понимания..
<?php 
if(isset($_POST["back"])){
    echo 
$_POST["back"];
}
?>
<table width="100%">
  <tr>
    <td><form name="form1" method="post" action="">
        <input name="back" type="hidden" value="back">
        <input type="submit" name="submit" value="Вернуться" />
      </form></td>
    <td><form name="form2" method="post" action="">
        <input name="back" type="hidden" value="Отправить">
        <input type="submit" name="submit" value="Отправить" />
      </form></td>
  </tr>
</table>

Старайтесь яснее излагать то что вам необходимо.

  Ответить  
 
 автор: tyoma_first   (08.04.2009 в 19:27)   письмо автору
 
   для: mikha   (08.04.2009 в 19:03)
 

Спасибо, я понял что вы имеете в виду. У меня вот такая задача. Есть одна форма, на ней 2 кнопки (back и submit). Значения, пришедшие из вормы в скрипт, необходимо по разному обрабатывать (в зависимости от того, какая кнопка была нажата). Имена полей формы заранее неизвестны. Хотелось бы решить эту задачу оптимальным способом.

  Ответить  
 
 автор: Metandrostenalon   (09.04.2009 в 07:53)   письмо автору
 
   для: tyoma_first   (08.04.2009 в 19:27)
 

попробуйте

<?php
$x 
= array('back''next''prev');

if(isset(
$_POST['names'])) {
  foreach(
$_POST['names'] as $key => $val) {
    
$msg 'Вы нажали '$key;
  }
  echo 
'<script type="text/javascript">alert("'$msg .'")</script>';
}

?>
<form method="post" action="">
<?php
foreach ($x as $values) {
    echo 
'<input type="submit" name="names['$values .']" value="'$values .'"><br />';

?>
</form>

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

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