我正在编写一个脚本,它将把一堆输入加在一起。我几乎在那里,但在测试脚本时,我似乎得到警告:注意:未定义的索引:第25行的C:\ xampp \ htdocs \ Archers.php中的数字。即使我已经提前声明它,甚至在使用它时现在。脚本如下。提前致谢。
<html>
<head>
</head>
<body>
<form method="post">
Enter how many values you would like to enter:
<input type="number" name="number">
<input type="submit" name="submit">
</form>
<?php
$number = 0;
$result = 0;
if (isset($_POST["submit"])){
$number = $_POST['number'];
$x = 0;
echo "<form method=\"post\">";
while ($x != $number) {
echo "Enter score: <input type=\"text\" name=\"".'a'.$x."\"><br>";
$x = $x + 1;
}
echo "<input type=\"submit\" name=\"submit2\"></form>";
}
if (isset($_POST["submit2"])){
$y = 0;
$number = $_POST['number'];
while ($y != $number){
$value = $_POST["a".$y];
$result = $result + $value;
$y = $y + 1;
}
echo $result;
}
?>
</body>
</html>
答案 0 :(得分:0)
您收到的错误是因为数组索引未定义 - 它根本就不存在。您的代码中可能$number = $_POST['number']
行(第25位)。
这肯定意味着您没有填写表单中的数字输入,因为您没有验证数字字段未通过的可能性。
编辑:我可以看到你创建了第二个表单,其中包含submit2
个键。当您第一次发布POST时,您将收到submit
和number
个键(在第14 - 22行)。然后,您的代码会创建第二个表单,这会使另一个POST submit2
但其中没有number
字段。因此,您在第23 - 32行中没有number
键。
EDIT2: 例如,你可以改变第一个如果是这样的:
if (isset($_POST["submit"])){
$number = $_POST['number'];
$x = 0;
echo "<form method=\"post\">";
while ($x != $number) {
echo "Enter score: <input type=\"text\" name=\"".'a'.$x."\"><br>";
$x = $x + 1;
}
echo "<input type=\"hidden\" name=\"number\" value=\"" . $number . "\">";
echo "<input type=\"submit\" name=\"submit2\"></form>";
}
答案 1 :(得分:0)
请尝试此代码。它会删除你的错误
<html>
<head>
</head>
<body>
<form method="post">
Enter how many values you would like to enter:
<input type="number" name="number">
<input type="submit" name="submit">
</form>
<?php
$number = 0;
$result = 0;
if (isset($_POST["submit"]) && isset( $_POST['number']) ){
$number = $_POST['number'];
$x = 0;
echo "<form method=\"post\">";
while ($x != $number) {
echo "Enter score: <input type=\"text\" name=\"".'a'.$x."\"><br>";
$x = $x + 1;
}
echo "<input type=\"submit\" name=\"submit2\"></form>";
}
if (isset($_POST["submit2"]) && isset( $_POST['number'])){
$y = 0;
$number = $_POST['number'];
while ($y != $number){
$value = $_POST["a".$y];
$result = $result + $value;
$y = $y + 1;
echo $result;
}
}
?>
</body>
</html>