PHP从表单输入字段创建数组

时间:2012-09-21 14:58:14

标签: php html forms input name-attribute

我正在尝试创建一个数组来存储数字并将它们加在一起。

<input type="number" name="numbers[]"/>

我在下一行获得了一个未定义的变量

foreach($numbers as $number)

我确信这可能是基本的东西,但我对php相对较新,非常感谢帮助。

4 个答案:

答案 0 :(得分:2)

如果您将从一个页面显示的input发布到另一个页面,并且需要运行该列表,则应将其设置为:

if (isset($_REQUEST['numbers']) && is_array($_REQUEST['numbers'])) {
  $numbers = $_REQUEST['numbers'];

  foreach ($numbers as $number) {
    print $number;
  }
}

答案 1 :(得分:2)

如果你想获得一个你不需要循环的数组的总和,你可以使用array_sum

示例

<?php
if (isset($_POST['numbers'])) {
    echo array_sum($_POST['numbers']);
}

?>

<form method="POST">
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="submit" value="add"/>
</form>

答案 2 :(得分:0)

添加更多代码,但这基本上意味着代码中此时尚未声明$ numbers。

在此之前添加此行:

$numbers = array();

现在它不应该给你这个错误。

所以现在的问题是,应该在哪里设置$ number?为此,我们需要更多信息和代码。

答案 3 :(得分:0)

我不是PHP专家,但如果我理解正确并且您试图将变量放入数组中,您需要说明我将假设的数据部分。我非常确定$array[i]$array不一样,如果你试图将某些内容放入$array,那么它一次只能容纳一件事。如果你只是收集某人从某个表单输入的数字,那么你可以做这样的事情。

//For the form
<form action="formHandler.php" method="post">
  <input type="text" name="number1">
  <input type="text" name="number2">
  //continue in this manner for as many numbers as you need to gather.
</form>

//for the PHP side of it.
<?php
  $x=1;
  $numbersArray = array();
  for($i=0; $i<10; $i++){
   $numbersArray[$i] = $_POST['number'.$x];
   $x++;
  }
//to add them up
$total=array_sum($numbersArray);
?>

我希望这是正确的,我希望它有所帮助。