PHP создает массив из полей ввода формы
Я пытаюсь создать массив для хранения чисел и сложить их вместе.
<input type="number" name="numbers[]"/>
Я получаю неопределенную переменную в следующей строке
foreach($numbers as $number)
Я уверен, что это, вероятно, что-то базовое, но я относительно новичок в php, и помощь будет принята с благодарностью.
4 ответа
Если вы хотите получить сумму массива, который вам не нужно зацикливать, вы можете использовать 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>
Если вы разместили input
Если вы показываете одну страницу на другую, и вам нужно просмотреть список, вы должны настроить его следующим образом:
if (isset($_REQUEST['numbers']) && is_array($_REQUEST['numbers'])) {
$numbers = $_REQUEST['numbers'];
foreach ($numbers as $number) {
print $number;
}
}
Добавьте еще немного кода, но это в основном означает, что $numbers еще не объявлен на этом этапе в коде.
Добавьте эту строку раньше:
$numbers = array();
Теперь это не должно дать вам эту ошибку.
Итак, теперь вопрос в том, где $ числа должны быть установлены? Для этого нам нужно больше информации и кода.
Я не эксперт по 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);
?>
Я надеюсь, что это правильно, и я надеюсь, что это помогает.