【问题标题】:PHP form keep values of form when reload or go to previousPHP表单在重新加载或转到上一个时保留表单的值
【发布时间】:2016-07-26 15:16:49
【问题描述】:

我的问题是我想在提交表单后记住表单的值。 让我解释: 我的表单如下所示:

<fieldset>
<legend> Indicateur : </legend>
<select name="indicateur" id="indicateur" onchange="choixindic(this.value);" >
<option value="indic1">Indic1</option>
<option value="indic2">Indic2</option>
<option value="indic3">Indic3</option>
<option value="indic4">Indic4</option>
<option value="indic5">Indic5</option>

</select>
</fieldset>
<br>

<fieldset>
<legend> Catégorie : </legend>
<div>
<table >
<tr>
<td><div class="part">
<input type="checkbox" id="part" name="part"><label for="part">Particuliers</label>
</div></td>
<td><div class="pro">
<input type="checkbox" id="pro" name="pro"><label for="pro">Petits Pros</label>
</div></td>
</tr>
</table>
</div>
</fieldset>

所以我有 2 种输入类型,即 select 和 2 个 checkboxes

然后我提交表单并转到“main.php”查看结果(使用 highcharts 绘制性能指标图)

但是当我点击上一个返回我的表单时,后者是空的,我的选择也没有了(如果我选中了“专业人士”,当我回来时没有选中复选框)

我的标题是这样的,可能是一些 js 脚本的原因:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OTIS</title>

<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="testform.css">

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>


<script type="text/javascript" src="js/scriptSat.js"></script>
<script src="js/Respond-Master/Respond-Master/dest/respond.min.js"></script>

<script>


</script>
</head>

我的问题是

如何在用户操作后保留值?

【问题讨论】:

标签: javascript php html forms local-storage


【解决方案1】:

您可以使用@siha 的示例,也可以将它们传递给您的会话变量。我更喜欢这个

【讨论】:

  • 好的,我将所有值都存储在 $SESSION 变量中,但是如何用这些数据填写我的表单?
  • &lt;input value="&lt;?php echo $_SESSION['name'] ?&gt;"&gt;&lt;/&gt; 只是基本的 php var echo in html :)
  • 例如,如果 被用户选中,那么我执行 $_SESSION['formvalues']['pro'] =$_POST['专业']。那么我如何对输入类型复选框说我希望在单击上一个时检查它? 我认为不起作用
  • 没关系,我想通了 :) 这是我所做的: > 谢谢大家
  • 能否请您分配答案,以便更多读者知道如何解决此问题。
【解决方案2】:

您可以考虑以下建议。

当用户访问您的页面并提交表单时,您将表单的所有值保存到带有 html5 的 localStorage 中。

提交表单时存储

localStorage.setItem("lastname", "Smith");
localStorage.setItem("choice", "1");

当用户再次访问您的页面时,您必须检查您保存的项目是否存在。如果没有,这些值将返回 null。

但是,如果他们这样做,您可以以这种方式填充您的字段。

访问表单时检查和检索

var lastname = localStorage.getItem("lastname");
if(lastname != null) { document.getElementById("result").innerHTML(lastname); }

请记住在您不再需要时随时移除您的物品。这将确保您的用户在他们期望的时候拥有一个干净的表单。

【讨论】:

  • 如果 js 被禁用,那是行不通的。我认为 session 是一个更好的主意。
  • @ksno 是的,这是真的。我是根据他的标签回答的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
相关资源
最近更新 更多