我用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>
首次打开页面时,尚未设置 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']
。