Создание кнопки просмотра в PHP / HTML - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть таблица базы данных для моих «Служб», которая содержит serviceid и некоторые другие несвязанные поля.Я использую PHP для динамического создания HTML-таблицы, которая отображает запрашиваемые сервисы.В каждой из строк имеется соответствующая кнопка «Просмотр», которая при нажатии должна отправляться на ту же страницу со значением идентификатора просматриваемой службы (страница будет перенаправлена ​​на другую страницу после установки $_POST['serviceid'], равнойзначение, переданное с кнопки).

Вот как я динамически создаю свою HTML-таблицу с помощью PHP:

    while(list($id, $name, $details, $datecreated, $firstname, $lastname) = $results->fetch_row())
    {
      if($index % 2 == 0)
      {
        echo "<tr BGCOLOR=\"#DCDCDC\" style=\"color: Black;\">";
      }
      else
      {
        echo "<tr>";
      }
      echo "<td>" . "<input type=\"checkbox\" id=\"flag$id \" name=\"flag\" value=\"Flag$id\"/>" . "</td>";
      echo "<td>" . "<input type=\"submit\" id=\"view$id \" name=\"view\" value=\"View\"/>" . "</td>";
      echo "<td>" . $id . "</td>";
      echo "<td>" . $name . "</td>";
      echo "<td>" . $details . "</td>";
      echo "<td>" . $datecreated . "</td>";
      echo "<td>" . $firstname . " " . $lastname . "</td>";
      echo "</tr>";

      $index++;
    } 

Это мой файл results.view.php, где я отображаюданные.Хотя вы не можете видеть тег <form> выше, достаточно знать, что он отправляет сообщение обратно в контроллер, который включает этот вид, и модель, которая обрабатывает нажатия кнопок и еще много чего.

Мой вопрос: как узнать, какая кнопка просмотра нажимается?Это может быть первый сервис, последний или любой другой между ними.Я поместил $id службы в значение id кнопки, но я не уверен, как ссылаться на это.Если бы я знал, как это сделать, то я мог бы потенциально склеить слово «представление», и у меня был бы идентификатор, необходимый для выполнения задачи.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Только значение кнопки, которую вы нажали, будет отправлено на следующую страницу. Если вы назначите всем кнопкам уникальные имена, вы можете просто проверить их с помощью

if (isset($_POST['button1'])) echo "button 1 was clicked";.

Конечно, это не сработает, если вы отправите форму с [Enter] в одном из полей. Другой вариант будет использовать радио-кнопку для этого? Или больше форм.

0 голосов
/ 22 февраля 2011

Назначение кнопок в виде идентификатора решит проблемы с мышью, но не будет работать с клавиатурой; Первая кнопка отправки объявит себя нажатой независимо от того, где находится ваш ключевой фокус.

На мой взгляд, есть 2 решения:

  • вместо этого используйте элементы A со строкой запроса.
  • элемент FORM в каждом TR.
...