Как получить (Отправить кнопку 'имя) на следующей странице в PHP? - PullRequest
1 голос
/ 07 декабря 2011

Я надеюсь, что мой вопрос ясен и имеет ответ.Это моя кнопка «Отправить» (не реальный код):

while... input type=submit name=$row['ID']

Когда я нажимаю кнопку «Отправить», мне нужно получить ее имя на следующей странице.Как?

У меня разные кнопки отправки, и я не знаю, выбрал ли пользователь первую, вторую, третью или x кнопку.

Ответы [ 5 ]

4 голосов
/ 08 декабря 2011

На основании вашего комментария вам действительно нужно выяснить, была ли нажата кнопка. Проверьте пример ниже.

Вот простая форма с вводом имени пользователя и тремя кнопками для выполнения различных действий с этим именем пользователя:

<form action="next_page.php" method="post">
  <input type="text" name="myname" />
  <input type="submit" name="get_myname" value="Give my name back" />
  <input type="submit" name="rand_name" value="I will give you some name" />
  <input type="submit" name="color_name" value="Your name as a rainbow" />
</form>

Как только одна из кнопок submit нажата, мы переходим на next_page.php и проверяем, какая из них была, и выполняем действия, основанные на этом.

<?php
  //this is next_page.php
  if (isset($_POST['get_myname']))   {
    //echo user's name to screen

  } elseif ( isset($_POST['rand_name']) )   {
    //echo a random name

  } elseif ( isset($_POST['color_name']) )   {
    //change every letter to a different colour

  } else   {
    //nothing to do here, just nice to have a comment letting you know
  }
?>
2 голосов
/ 07 декабря 2011

Если кнопка отправки является частью формы со значением, вы можете получить к ней доступ в массиве данных $ _POST или $ _GET на следующей странице.Если ваш сценарий не знает названия кнопки отправки, прокрутите постданные, чтобы найти их.

1 голос
/ 07 декабря 2011

РЕДАКТИРОВАТЬ : ответ Матино более уместен, если он соответствует вашему сценарию использования.

Если я вас правильно понимаю, вы хотите получить / проверить наличие «the_name» после отправки следующей формы:

<form method="post">
  <input name="the_name" type="submit">
</form>

Теперь все POST-данные доступны в PHP $_POST superglobal, однако PHP не может узнать, какая часть данных является кнопкой отправки.

Есть два возможных пути решения этой проблемы:

  • Если вы уже знаете имя, вы можете проверить его существование с помощью isset($_POST['the_name']) - это сообщит вам, отправил ли пользователь форму, нажав кнопку the_name submit (однако, если нажата enter, переменная не будет присутствовать).
  • Если вы можете изменить HTML, вы можете использовать подписку, изменив имена всех элементов отправки, например, submit[the_name] - таким образом, вы можете найти имя нажатой кнопки отправки, посмотрев на array_keys($_POST['submit'])[0].
1 голос
/ 07 декабря 2011

Вместо присвоения идентификатора имени кнопки, используйте строку запроса и отправьте your_script.php?id=$row['ID']. Затем на следующей странице используйте $_GET['id'], чтобы получить имя кнопки.

0 голосов
/ 07 декабря 2011

Если вы не хотите менять дизайн своего приложения, вы можете просто сделать это:

  foreach ($yourids_used_in_prev_page as $id)
  {
    if (isset($_POST[$id])) // or $_GET if your form method="get"
    {
      // and you are get it!
    }
  }

Это не красивое решение, но может подойти вам

...