提交后如何在文本输入中保留值?

时间:2016-02-09 22:50:54

标签: php jquery laravel-4

我在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>

1 个答案:

答案 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']