如何从一个变量中的多个表单搜索字段中捕获数据

时间:2015-03-01 21:22:12

标签: php forms

我有一个包含select,textarea和文本输入等多个字段的html搜索表单。我需要将所有字段中的值存储到php搜索表单中的$ input中,但我不确定如何将它们存储到php页面上名为$ input的变量中。

<form name="search" method="post" action="http://example.com/search/">
Seach for: <input type="text" name="find" /> <input type="submit"  
name="search" value="Search" />
Search for movies by Type
<select name="find">
<option value="Sci-Fi" selected>Sci-Fi</option>
<option value="Comedy">Comedy</option>
<option value="Drama">Drama</option>
</select>
</form>

//on search.php need to 'find' to be data from several form inputs
$input = $_POST['find'];

3 个答案:

答案 0 :(得分:0)

让你的$输入一个数组。例如:

$input = array(
    "user" => $_POST['username'],
    "find" => $_POST['find'],
);

或者只需通过执行以下操作将所有内容添加到$ input:

$input .= $_POST['username'];
$input .= $_POST['find'];

答案 1 :(得分:0)

如果您为多个输入提供相同的名称,$_POST['find']将只包含其中一个输入(我认为是最后一个)。您需要为它们指定不同的名称,或者您可以使用[]结束名称。当你执行后者时,PHP会将所有输入放入一个数组中。

<form name="search" method="post" action="http://example.com/search/">
Seach for: <input type="text" name="find[]" /> <input type="submit" name="search" value="Search" />
Search for movies by Type
<select name="find[]">
    <option value="Sci-Fi" selected>Sci-Fi</option>
    <option value="Comedy">Comedy</option>
    <option value="Drama">Drama</option>
</select>
</form>

有了这个,你可以这样做:

$input = implode(' ', array_filter($_POST['find']));

array_filter将删除所有空值,其余的将与它们之间的空格连接在一起。

答案 2 :(得分:0)

<?php
array_pop($_POST); // To delete Submit button from $_POST
foreach(array_filter($_POST) as $key=> $val)
{
    $input .= "$val";
}
?>