html php, идентифицирующий форму публикации данных - PullRequest
1 голос
/ 15 марта 2012

У меня есть страница php, которая имеет несколько тегов формы. каждая форма имеет дело с определенной вкладкой. Это просто поиск, но каждая вкладка обеспечивает поиск либо даты, номера или имени.

каждый тег формы имеет свое имя .... как я могу узнать, какая форма была отправлена ​​на странице результатов, чтобы соответствующим образом настроить поиск в базе данных?

это что-то с $ _POST или $ _REQUEST?

    <form name="invoice" action="result.php" method="POST"><br><br>
    <form name="customer" action="result.php" method="POST"><br><br>
    <form name="customer" action="result.php" method="POST"><br><br>

каждое из перечисленных выше содержит таблицу с полем ввода и кнопкой отправки.

Спасибо

Ответы [ 5 ]

5 голосов
/ 15 марта 2012

Я бы предложил добавить скрытое поле ввода для каждой формы, указав имя формы:

<input type="hidden" name="formname" value="invoice" />

Затем вы можете получить это с помощью переменной $ _POST ['formname'].

1 голос
/ 15 марта 2012

Вы можете, например, в каждой кнопке отправки добавить имя и значение, например:

<form>
   <input type="submit" name="action" value="search_invoice" />
   ... 
</form>

<form>
   <input type="submit" name="action" value="search_customer" />
   ...
</form>

тогда в вашем php

switch($_POST['action']) {
   case 'search_invoice':
      // ur code
      break;

   case 'search_customer': default:
      // ur code
      break;
}

Имейте в виду, что более старые версии firefox неправильно отправляют пару ключ => значения типа ввода submit.

Другое решение, которое я обычно использую, это поставить <input type="hidden" name="action" value="your_customAction" />

1 голос
/ 15 марта 2012

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

<input type="hidden" name="formname" value="invoice" />
<input type="hidden" name="formname" value="customer" />
<input type="hidden" name="formname" value="customer2" />
0 голосов
/ 15 марта 2012
  1. Поиск должен выполняться с использованием метода GET, а не атрибута POST
  2. no name, отправляемого на сервер.
  3. Если на каждой вкладке выполняется поиск по дате или номеруили name - почему у вас нет соответствующих имен полей поиска: "date" для поиска по дате и т. д .?
0 голосов
/ 15 марта 2012

У вас должно быть другое имя кнопки отправки во всех формах.

РЕДАКТИРОВАТЬ: -

Если у вас есть только один элемент в каждой форме, лучше всего использовать решение @ Petter, потому чтоВ IE есть ошибка с одним текстовым элементом: если вы отправляете форму с помощью клавиши ввода, кнопка отправки не будет установлена ​​в $_POST.

Но если у вас в формах более одного элемента, выМожно рассмотреть выбор другого имени для кнопок отправки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...