Могу ли я включить значение формы в редирект действия в php? - PullRequest
1 голос
/ 13 июля 2011

Возможно ли в php включить значение формы в перенаправление действия?

Например:

<form method='POST' name='Select' action='customer.php?CID=xxxxx'>
<input type=text width='5' name='searchVal' />

где xxxxx - это значение, введенное в форму.

Я пробовал несколько разных способов, и я просто не понимаю это!(Все еще в новинку для php) Любая помощь будет принята с благодарностью.

Похоже, мне придется использовать $ _POST и $ _GET.Немного больше информации может быть в порядке ... customer.php отображает список клиентов по порядку по идентификатору, имени и т. Д. В настоящее время пользователь нажимает на идентификатор клиента, для которого он хочет отобразить сведения.Я пытаюсь добавить поле, в котором они могут просто ввести номер клиента, чтобы быстро получить подробную информацию, но я все еще хочу, чтобы список отображался.Судя по тому, как это звучит, мне придется сделать это как две отдельные программы ... это правда?

Ответы [ 5 ]

2 голосов
/ 13 июля 2011

Как насчет этого:

<form method='POST' name='Select' action='customer.php'>
<input type='hidden' value='xxxxx' name='CID' />
<input type=text width='5' name='searchVal' />
...
</form>

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

Обратите внимание, что вы даже можете использовать PHP-подобный массив нотации_

<input type='hidden' value='xxxxx' name='CID[1]' />
<input type='hidden' value='yyyyy' name='CID[2]' />

На стороне PHP получите доступ к этим значениям, используя этот синтаксис:

$_POST[ 'CID' ][ 1 ]
$_POST[ 'CID' ][ 2 ]

UPDATE-1

Ах, вы хотите использовать пользователявведенные значения в URL-адрес действия непосредственно перед отправкой формы?

В этом случае вам необходимо использовать JavaScript.Получите доступ к DOM, чтобы изменить URL-адрес действия.

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

UPDATE-2

Вы писали: «Судя по тому, как это звучит, мне придется сделать это как две отдельные программы ... это правда?»

Нет, на самом деле нет.Вы по-прежнему можете использовать один customer.php, который в начале проверяет, был ли он вызван с использованием связанного клиента в элементе таблицы или искомого клиента в поле поиска.

Другими словами: Вы donне нужно готовить два сценария, но две формы для двух целей, которые вызывают один и тот же сценарий customer.php.

1 голос
/ 13 июля 2011

Вы можете включить требуемое значение в скрытое поле в вашей форме:

<input type="hidden" name="CID" value="xxxxx" />

Причина, по которой это требуется, заключается в том, что вы отправляете форму на сервер через POST, но добавляете параметры в URLтребует отправки по методу GET.

0 голосов
/ 15 июля 2011

Я наконец понял! Это на самом деле очень просто!

В теле кода я поставил это:

<form action='#_SELF' method='GET' name='Projected'>
<input type=text size=5 name='CID' value='' title='Enter Customer number to display' />
<a href='#' onclick='document.Projected.submit();' title='Enter Customer number to display'>Go</a>

И в верхней части кода я просто делаю:

if (!isset($_GET['CID'])) { ...

Это работает именно так, как я хотел!

Спасибо всем за помощь! Я ценю его! (И я все больше узнаю о PHP каждый день!)

0 голосов
/ 13 июля 2011

Не без поста на сервер.Значение в форме заполняется на стороне клиента, поэтому оно должно быть возвращено на сервер, прежде чем вы сможете добавить его в action.(по крайней мере, если вы хотите использовать php).

Вы можете либо

  • добавить его после публикации (может быть бесполезно)
  • использовать javascript
  • просто не используйте GET CID, но извлеките его из POST в вашем скрипте customer.php.
0 голосов
/ 13 июля 2011

К сожалению, вы не можете этого сделать, к сожалению

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