【问题标题】:How to Preserve the input Value in HTML <input>如何在 HTML <input> 中保留输入值
【发布时间】:2014-02-12 11:05:28
【问题描述】:

如果提交错误,我怎么可能保留&lt;input&gt; 字段的值?我有一个将提交到 php 页面的表单。然后 PHP 页面将检查这是否正确。

例如。如果用户输入google PHP 页面说它是错误的。我想将google 发送回输入字段。

【问题讨论】:

  • 当服务器重新发送页面时,只需使用您在$_POST 中的变量填充表单。您也可以使用 AJAX 执行类似的操作,其中表单实际上并未首先被清除。
  • 如果你使用 Laravel,那么你应该看看 Input 类。否则只需echo$_POST 的值。
  • 是否可以只使用没有 php $_POST 的 html 或者我应该使用它?
  • @user3258603 不,您需要使用 PHP。
  • 尝试使用 AJAX 提交。

标签: php html


【解决方案1】:

您可以使用$_POST$_GET 超级全局访问该值。根据表单提交方法,您可以:

<input type="text" value="<?= (isset($_POST['field'])) ? strip_tags($_POST['field']) : '' ?>" name="field" />

如果你的method="get",你需要:

<input type="text" value="<?= (isset($_GET['field'])) ? strip_tags($_GET['field']) : '' ?>" name="field" />

【讨论】:

  • 危险:此代码为vulnerable to XSS。用户输入在插入 HTML 文档之前需要转义!
  • @Quentin,您愿意改进答案以克服 XSS 问题吗?
【解决方案2】:

如果你有你的输入元素:

<input id="myInput" name="myInput" value="<?php if(isset($_POST['myInput'])){ print $_POST['myInput']; } ?>" />

我相信这应该可以,但如果它没有让我知道,我会编辑它。

【讨论】:

  • 正如昆汀所说,这可能很危险,您需要确保输入不是恶意的。
【解决方案3】:

您可以返回结果和用户输入的值。

例如,如果用户输入“google”

然后在你的情况下返回一个数组作为

array('result' => 'error', 'val' => );

或者它是正确的

array('result' => 'success', 'val' => );

使用这个数组,您可以检查“结果”变量是成功还是错误。如果是错误,则取“val”值并将其放入您的输入中

【讨论】:

    【解决方案4】:

    像这样使用$_POST[fieldname]

    <input type="text" name="name" value="<?php if(isset($_POST['name'])) echo strip_tags($_POST['name']);  ?>"/>
    

    【讨论】:

    • 危险:此代码是vulnerable to XSS。用户输入在插入 HTML 文档之前需要转义!
    猜你喜欢
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2019-01-03
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多