我在PHP中编写此代码,然后单击“提交”后,我希望将值保存在texbox中。我第一次打开页面时看到textfild中有一些错误?我该怎么解决这个问题?
<html>
<body>
<form action="" method="GET">
First number<input type="text" name="num1" placeholder="<?php echo $_GET['num1'] ; }?>"/>
Second number<input type="text" name="num2" placeholder="<?php echo $_GET['num2'] ; ?>"/>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
if(isset($_POST['submit']))
{
$num1=$_GET['num1'];
$num1=$_GET['num2'];
$sum=($num1+$num2);
echo "Sum is :<input type='text' value='$sum'/>";
}
?>
</body>
</html>
答案 0 :(得分:0)
首次打开页面时,尚未设置GET变量。
请改为:
First number<input type="text" name="num1" placeholder="<?php echo (isset($_GET['num1']))? $_GET['num1'] : ""; ?>"/>
Second number<input type="text" name="num2" placeholder="<?php echo (isset($_GET['num2']))? $_GET['num2'] : ""; ?>"/>
这将验证(使用三元表达式)是否设置了get变量,如果是,则将值应用于文本框。
另外,正如下面mopo所提到的,这是PHP7中的一个新功能,也可以更简单的方式工作。
First number<input type="text" name="num1" placeholder="<?php echo $_GET['num1'] ?? ""; ?>"/>
Second number<input type="text" name="num2" placeholder="<?php echo $_GET['num2'] ?? ""; ?>"/>
此外,您不应该检查提交按钮是否使用POST设置...它应该不起作用。
if(isset($_POST['submit']))
{ ...
}
您可以验证是否设置了$_GET['num1']
和$_GET['num2']
。