PHP-сообщение не работает с именем формы - PullRequest
3 голосов
/ 08 июля 2011

У меня есть форма с именем = "search", и я надеялся, что этот скрипт будет работать, но он не работает.

if (isset($_POST['search']))
    include_once('layouts/layout_2.php');

Вот моя разметка

<form name="search" action="" method="post">
<p>I am looking for</p>
<input type="text" value="Any keyword" name="searchlist">
<input type="submit" value="Find Job">

Ответы [ 9 ]

5 голосов
/ 08 июля 2011

Имя формы не передается в переменной $_POST. Вместо этого можно проверить, было ли введено имя кнопки отправки.

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

<?php
if($_POST['submit']) {
    //Code here
}
?>

Этот метод не требует, чтобы вы добавляли дополнительную скрытую переменную только для того, чтобы проверить, была ли отправлена ​​форма. Кроме того, вам не нужно проверять метод запроса и все ли другие переменные также были опубликованы. Если была нажата кнопка «Отправить», форма была отправлена.

3 голосов
/ 08 июля 2011
<form name="search" action="" method="post">
<input type="hidden" name="search" value="1"/>
<p>I am looking for</p>
<input type="text" value="Any keyword" name="searchlist">
<input type="submit" value="Find Job">

PHP

if($_POST['search'] == 1) include_once('layouts/layout_2.php');
3 голосов
/ 08 июля 2011

Разве вы не можете просто искать:

if(isset($_POST['searchlist'])) {
  include_once('layouts/layout_2.php');
}
3 голосов
/ 08 июля 2011

Имя формы не отправляется как часть отправки формы.Если вы хотите определить, была ли отправлена ​​форма, выполните:

if ($_SERVER['REQUEST_METHOD'] == 'POST') && (isset($_POST['searchlist']) && (!empty($_POST['searchlist'])) {
   ...
}
1 голос
/ 08 июля 2011

вы можете попробовать

print_r($_POST)

чтобы посмотреть, какое значение

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

Единственными данными, которые появятся в отправке формы, являются значения успешных элементов управления формы (и, возможно, данные, закодированные в атрибуте действия, но не делайте этого).

Если вы хотите включить произвольные дополнительные данные, используйте скрытый ввод.

<input type="hidden" name="foo" value="bar">

Никогда не используйте атрибут name для формы. Это способ идентификации формы для клиентского сценария , который был заменен более десяти лет назад атрибутом id.

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

Попробуйте это:

$keyword = $_POST["searchlist"];
0 голосов
/ 08 июля 2011

Нет, это не сработает, но вы можете использовать скрытый ввод:

<form  action="" method="post">
<input type="hidden" name="search" value="1" />
<p>I am looking for</p>
<input type="text" value="Any keyword" name="searchlist">
<input type="submit" value="Find Job">

Тогда ваш код PHP будет работать как положено.

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

php не хранит название формы.в $ _POST находятся только значения элементов формы.Если вы хотите выяснить, какая форма была отправлена, передайте значение скрытого поля или добавьте переменную к URL-адресу action = ".." (и посмотрите в $ _GET) или аналогичном.

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