我有一个HTML表单,其中包含3个类型文本输入和一个类型为submit的输入,其中动物的名称将插入到每个文本框中。然后应将数据插入PHP数组中。
这是我的HTML表单:
<form action="Test.php" method="post" name="myForm" id="myForm">
<input type="text" placeholder="Enter animal one..." name="animal1" id="animal1">
<input type="text" placeholder="Enter animal two..." name="animal2" id="animal2">
<input type="text" placeholder="Enter animal three..." name="animal3" id="animal3">
<input type="submit" value="Submit" name="send" id="send">
</form>
这是我非常实验性的PHP代码:
<?php
if (isset ($_POST["send"])) {
$farmAnimals = $_POST["animal1"];
$farmAnimals = $_POST["animal2"];
$farmAnimals = $_POST["animal3"];
}
// As a test, I tried to echo the saved data
echo $farmAnimals;
?>
这不起作用,因为不幸的是,数据并没有神奇地变成一个数组,我认为这样做。
我也试过这个:
<?php
if (isset ($_POST["send"])) {
$farmAnimals = $_POST["animal1", "animal2", "animal3"];
}
echo $farmAnimals;
?>
这给了我一条错误信息。如何将此数据插入PHP数组?
答案 0 :(得分:-1)
首先将$ farmAnimals初始化为数组,然后可以推送元素
if (isset ($_POST["send"])) {
$farmAnimals = array();
$farmAnimals[] = $_POST["animal1"];
$farmAnimals[] = $_POST["animal2"];
$farmAnimals[] = $_POST["animal3"];
print_r($farmAnimals);
}
答案 1 :(得分:-1)
试试这个:
$string = "";
foreach($_POST as $value){
$string .= $value . ",";
}
或者这个:
$string = implode(',', $_POST);
答案 2 :(得分:-1)
如果您将文本字段名称更改为animal[]
,则在发布时会有一系列动物名称
<form action='Test.php' method='post'>
<input type='text' placeholder='Enter animal one...' name='animal[]' />
<input type='text' placeholder='Enter animal two...' name='animal[]' />
<input type='text' placeholder='Enter animal three...' name='animal[]' />
<input type='submit' value='Submit' name='send' id='send'>
</form>
然后,您可以轻松地在php中处理该数组,无论您的目的是什么 - 其输出将是这样的:
Array
(
[animal] => Array
(
[0] => giraffe
[1] => elephant
[2] => rhinocerous
)
[send] => Submit
)
要以自己的方式将这些动物作为阵列进行访问,您可以这样做:
$animals=array_values( $_POST['animal'] );
答案 3 :(得分:-1)
尝试命名输入字段,如下所示:
<form action="Test.php" method="post" name="myForm" id="myForm">
<input type="text" placeholder="Enter animal one..." name="animal[0]" id="animal1">
<input type="text" placeholder="Enter animal two..." name="animal[1]" id="animal2">
<input type="text" placeholder="Enter animal three..." name="animal[2]" id="animal3">
<input type="submit" value="Submit" name="send" id="send">
</form>
这样您就可以在PHP代码中访问这些值,如下所示:
if(isset($_POST["send"])) {
$farmAnimals = $_POST["animal"];
}
var_dump($farmAnimals);
// Array( [0] => Animal1, [1] => Animal2, [2] => Animal3 )
// Where Animal1,... are the values entered by the user.
// You can access them by $farmAnimals[x] where x is the desired index.
提示:您可以使用empty()
检查变量是否存在以及是否具有“truthy”值(评估为true
的值)。如果根本没有定义变量,它不会抛出异常。有关详细信息,请参阅PHP - empty()。
关于超全球$_POST
数组的更多参考,显示了这种“数组生成名称”方法:https://secure.php.net/manual/en/reserved.variables.post.php#87650
修改强>
我刚看到,您实际上每次都会覆盖$farmAnimals
变量。您应该使用带有任意数量参数的array(val1, val2, ...)
来生成数值数组。
如果您更喜欢关联数组,请执行以下操作:
$myArray = array(
key1 => value1,
key2 => value2,
....
);
要在下一个空闲索引的现有数组上附加值,请使用以下语法:
// This array contains numbers 1 to 3 in fields 0 to 2
$filledArray = array(1,2,3);
$filledArray[] = "next item";
// Now the array looks like this:
// [0 => 1, 1 => 2, 2 => 3, 3 => "next item"]