【问题标题】:How can I keep a value in a text input after a submit? [duplicate]提交后如何在文本输入中保留值? [复制]
【发布时间】:2016-05-20 03:06:39
【问题描述】:

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

【问题讨论】:

  • 你能把错误的文本贴出来吗?我猜它必须与未设置的变量有关。
  • 这一点if(isset($_POST['submit'])){...} 永远不会启动。
  • 似乎是 POST 和 GET....

标签: php jquery laravel-4


【解决方案1】:

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

【讨论】:

  • PHP7中超酷的新功能:$_GET['num1'] ?? ''php.net/manual/en/…
  • 是的,我听说过那个,太棒了,但我不确定 OP 使用的是哪个版本:/
  • 当然可以。不抱怨你的答案,只是补充它。
  • 谢谢,我在答案中添加了提及。
  • 我使用了这样的 Post 方法,还可以。谢谢 :) 第一个数字
猜你喜欢
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 2014-10-29
相关资源
最近更新 更多