当我说'新'时,我的意思是这是我第一次尝试使用php。
反正。我一直收到这个错误通知"未定义的索引:在第33行和第34行输入c:\ x \ calculator.php,但它仍然回响"你忘了选择mathtype!"并且计算器工作正常。仅当我没有为数学类型(+ - / *)选择任何单选框时,才会出现此错误通知。
//Part of the form
<form action="calculator.php" method="post">
<input type="text" name="1stnumber">
<input type="text" name="2ndnumber">
<input type="radio" name="type" value="addition">
<input type="radio" name="type" value="subtraction">
<input type="submit" name="send">
<?php
//My variables
$number = $_POST['1stnumber']
$numbero = $_POST['2ndnumber']
$mathtype = $_POST['type'] /* **<-line 33** */
//The calculation part of the form here, which is working
//Tell the user if he didn't pick a math type (+-)
if(is_null($mathtype)){
echo "You forgot to pick mathtype!"
}
?>
也尝试使用elseif ..我不知道第33行和if(is_null())行之间的错误!
对不起,如果它看起来很糟糕,凌乱,或者某些事情没有意义。也可能是一些错别字。任何帮助表示赞赏。
答案 0 :(得分:1)
在捡起之前,只需检查是否发布了类型
if(isset($_POST['type']))
{
$mathtype = $_POST['type'];
}
else
{
echo "Type was not selected";
}
答案 1 :(得分:1)
使用checked
属性设置默认选定选项。
<label><input type="radio" name="type" value="addition" checked="checked"> +</label>
<label><input type="radio" name="type" value="subtraction"> -</label>
不要忘记html中的输入需要标签,如果省略,你可以使用placeholder
属性,但type="radio"
显然无法做到这一点。因此将input
包裹在label
中,旁边有文字说明,例如+或 -
此外,这是一个复制和粘贴错误,bc所有php语句必须以分号;
$number = $_POST['1stnumber']; // <- terminate
$numbero = $_POST['2ndnumber']; // <- terminate
$mathtype = $_POST['type']; // <- terminate
echo "You forgot to pick mathtype!"; // <- terminate
答案 2 :(得分:0)
检查表单是否已发布:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
//My variables
$number = $_POST['1stnumber']
$numbero = $_POST['2ndnumber']
$mathtype = $_POST['type'] /* **<-line 33** */
//The calculation part of the form here, which is working
//Tell the user if he didn't pick a math type (+-)
if(is_null($mathtype)){
echo "You forgot to pick mathtype!"
}
}
?>
此外,is_null检查也将在第一次加载时执行(在表单发布之前)。
答案 3 :(得分:0)
检查您尝试从$ _POST中检索的变量是否已实际设置,这是一个很好的做法,请尝试以下方法:
<?php
//My variables
if (isset($_POST['1stnumber'])) {
$number = $_POST['1stnumber'];
}
if (isset($_POST['2ndnumber'])) {
$numbero = $_POST['2ndnumber'];
}
if (isset($_POST['type'])) {
$mathtype = $_POST['type']; /* **<-line 33** */
}
//The calculation part of the form here, which is working
//Tell the user if he didn't pick a math type (+-)
if (is_null($mathtype)) {
echo "You forgot to pick mathtype!";
}
?>