В основном то, что я хочу, чтобы моя программа выполняла, – спросить у пользователя, сколько номеров они хотят ввести. Как только значение будет отправлено, программа примет значение и создаст это количество текстовых полей. Каждое текстовое поле будет принимать число и после его представления, оно должно принимать все числа (за исключением исходного текстового поля) и хранить их в массиве или что-то такое, чтобы среднее значение можно было вычислить.
Я смог довести количество текстовых полей до x, но не могу найти способ отправить эти значения.
<html> <body> <form action="means.php" method = "get"> Enter sample size: <input type = "number" name = "size" <br> <input type = "submit"> <?php if ( isset($_GET["size"] ) ) { $size = $_GET["size"]; $count = 1; while ($count <= $size) { echo '<br><input type=\"text\" name=\"textbox".$count."\" />'; $count++; } } ?> </form> </html> </body>
Я предполагаю, что проблема заключается в том, что созданные текстовые поля повторяются так, что имя «текстовое поле. $ Count». не могут быть использованы для получения чисел?
Любая помощь будет принята с благодарностью. Заранее спасибо!
Просто используйте нотацию массива PHP для имен полей формы:
<input type="text" name="textbox[]" /> ^^---force array mode
который создаст массив в $_POST['textbox']
, один элемент для каждого текстового поля, который был отправлен с именем textbox[]
.
например:
<input type="text" name="textbox[]" value="1" /> <input type="text" name="textbox[]" value="foo" /> <input type="text" name="textbox[]" value="banana" />
производит
$_POST = array( 'textbox' => array ) 0 => 1, 1 => 'foo', 2 = > 'banana' ) )
Ваша проблема заключается в том, что вы используете однокасканные строки ( '
), что означает, что
$var = 'foo'; echo '$var' // outputs $, v, a, r echo "$var" // outputs f, o ,o