当前位置: 首页 > 知识库问答 >
问题:

提交后仍保留动态生成的字段和数据

吴宝
2023-03-14

我正在处理一个表单,其中我有一个动态字段,我可以在其中添加和删除输入和下拉字段。

我的问题是我不知道如何使我添加的字段和该字段上的数据在提交后保留下来。

<script type="text/javascript">
  document.getElementById('tonnage').value = "<?php echo $_POST['tonnage'];?>";
</script>

我尝试使用这段代码使select标记保持值,但没有起作用。

这是我的示例代码

自举

我希望你能帮助我,谢谢。

共有3个答案

公良琛
2023-03-14

因此提交之后,您的$_post中已经有了数据。

现在,您只需循环访问$_post数组,并预先创建所有select&input字段行。

我猜您已经在这样做了,而您的问题是在它们中填充数据。

# Set a json array variable.
var tonnages = <?php echo json_encode($_POST['tonnage']) ?>;
var tablesize = ...
# Do the same for others...

# Now just loop through the select fields.
$("select[name='tonnage[]']").each(function(i, el) {
    $(el).val(tonnages[i]);
});

$("select[name='tablesize[]']").each(function(i, el) {
    ...
});
# Do the same for others...

希望这有帮助。

吕成业
2023-03-14

如果要为选择输入设置值,只需将所需的选项设置为选择:

var myValue = "<?php echo $_POST['tonnage'];?>";
$("#tonnage option").each(function(){
   if($(this).val()===myValue)
     $(this).prop('selected',true);
});

这个答案中提到的另一种方式:

var myValue = "<?php echo $_POST['tonnage'];?>";
$("#tonnage").val("val2");

重要的一点是,当您克隆某个部分并再次追加它时,某些元素似乎具有重复的id。例如,tonnageid重复。可能会引起误会。

蒲昊
2023-03-14

假设您不想设置一个服务器来存储这些信息,那么这里只剩下几个选项。具体地说,客户端存储。我将介绍localstorage,因为它最容易使用,您在上面已经提到了它。

这是localStorage API。如果您认为界面太复杂,我建议您通读一下,也许还可以附上一个教程(我个人认为Mozilla文档更好,但这个tut看起来更适合您的应用程序)。

简而言之,您将使用setitem(...)getitem(...)方法。

LocalStorage.SetItem(“我的测试键”、“我的测试值”);

console.log(localstorage.getitem(“我的测试密钥”));//-->我的测试值

因此,对于您的应用程序,我建议创建一个对象来存储您的值,然后将该对象附加到localstorage

var state = {}
// Get values from your form however you feel fit
values = getValues(...);
function setValues(values) {
    // Do this for all the values you want to save
    state.values = values
    // Continues for other values you want to set...   
}
// Save values to localStorage
localStorage.setItem("Application_State", state);

现在用于检索状态时,用户返回您的网站。

// Application_State is null if we have not set the state before
var state = localStorage.getItem("Application_State") || {};
function updateValues() {
    values = state.values;
    // Render your values to the UI however you see fit
}

这是一个非常简短的介绍,我鼓励您在将其发布到一个生产就绪的站点之前,仔细阅读有关这些内容的文档。

希望这有助于&&祝你好运!

 类似资料:
  • 我正在尝试构建一个带有按钮的PHP计算器。我的问题之一是我不能有超过一个数字的值。例如,当我尝试输入一个值(例如33)时,文本框中的结果变为3,因为当我对所有数字使用submit时,页面被刷新。只能使用一个PHP页面。这个解决方案是向我建议的,但它不能解决我的问题,因为它使用了多个页面。此外,一个以上的数字似乎不起作用。 另外,这里是我的HTML的一个示例 这是我的用户界面的图片,一个我的用户界面

  • 其实我是用条形码扫描器来输入字段的。如果我有3个字段,那就是: 物料条码: 物料条码: 序列条码: 步骤: 1。在物料条形码文本字段 2中扫描物料条形码。扫描条形码“项目条形码”文本字段 3中的项目条形码。在串行条码文本字段中对串行条码进行扫描,扫描后自动提交。 那么问题来了,如果所有的字段都填好了,怎么自动提交呢? 谢谢你。

  • 本文向大家介绍JS实现动态生成表格并提交表格数据向后端,包括了JS实现动态生成表格并提交表格数据向后端的使用技巧和注意事项,需要的朋友参考一下 本文实例介绍了JS实现动态生成表格并向后端提交表格数据的相关代码,分享给大家供大家参考,具体内容如下 先来看一下需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存。 那么我们首先需要解决的是动态生成表格

  • 问题内容: 我正在尝试根据此文档http://wtforms.simplecodes.com/docs/1.0.2/specific_problems.html#dynamic-form-composition在WTForms中生成具有动态字段的表单 我有这个子窗体类,它允许用户从列表中选择要购买的物品: 购物商品将有多个类别,因此我想根据用户选择的类别生成一个动态选择字段: 但出现以下错误: 我

  • 我在Spring MVC(4.1.1)中使用了Thymeleaf(Tymeleaf-Spring4-2.1.3),并有一个模型/命令对象,如下所示: Thymeleaf如何确定必须生成隐藏字段? 即使我将属性更改为 这里相同:没有隐藏字段。