Php 如何重新填充动态字段?

Php 如何重新填充动态字段?,php,ajax,jquery,field,Php,Ajax,Jquery,Field,见下图,它将允许我添加许多我想要的产品。首先,我从下拉列表中选择一个类别,然后通过Ajax在Items下拉列表中生成相关条目。我可以通过点击“添加其他产品”来添加我想要的许多产品 如果我完成了产品选择,我将需要单击Submit/Order按钮,然后在添加到销售之前通过PHP(无Ajax)验证字段。如果验证未通过-我需要重新填充所有选定的类别和条目(换句话说,再次创建产品字段)-如何执行此操作 注意:所有数据将存储在$\u POST 对于输入框,它与操作一样简单 <input name="f

见下图,它将允许我添加许多我想要的产品。首先,我从下拉列表中选择一个类别,然后通过Ajax在Items下拉列表中生成相关条目。我可以通过点击“添加其他产品”来添加我想要的许多产品

如果我完成了产品选择,我将需要单击Submit/Order按钮,然后在添加到销售之前通过PHP(无Ajax)验证字段。如果验证未通过-我需要重新填充所有选定的类别和条目(换句话说,再次创建产品字段)-如何执行此操作

注意:所有数据将存储在
$\u POST


对于输入框,它与操作一样简单

<input name="fname" value="<?php if(isset($_POST['fname'])) echo $_POST['fname']' ?>">
您的选项:

  • 使用$\u POST数据生成包含用户创建的字段的html
  • 存储$_POST数据(例如在会话中),并将用户重定向回原始表单,如果找到保存的数据,该表单必须包含生成用户创建字段的代码
首选第二种选择

编辑:选项二的额外信息

验证失败时,在会话中保存$\u POST数据:
$\u会话['stored POST']=$\u POST
并重定向到原始表单(发帖的表单):
标题('Location:/url/of/the/original form.html)

在生成订单的代码中,添加以下内容:

if ( isset($_SESSION['stored post']) 
     && is_array($_SESSION['stored post']) 
     && count($_SESSION['stored post']) > 0 ) //check if there is POST stored
{
    //generate fields from data stored in $_SESSION['stored post'] here

    unset($_SESSION['stored post'];  //remove the stored data
}

我认为,如果您的JS代码是结构化的,那么您将重用编辑时使用的相同方法,只有这些函数使用的值将来自持久化的服务器端数据,而不是用户交互。也许不是答案,但希望你最终能找到答案。与CRUD一样,您是为创建和编辑场景编写两组代码,还是在不同的上下文中使用单个基。是的,我知道,但那不是我的问题。就像我说的,字段是通过jQuery创建的,相关条目是通过Ajax.Ah创建的。嗯,对不起。我熟悉用PHP来回传递表单,但对jQuery和Ajax不太熟悉。对不起。如果数据在
$\u POST
中,为什么不使用PHP向客户端发送预填充的表单?您只需在客户端添加一个“删除产品”按钮即可。@deizel当通过jQuery和Ajax创建字段时。然后单击提交按钮提交订单。如果验证失败,它将在同一页上,但刷新。。。所有的动态字段都将消失。好吧,它们没有消失,它们在$u POST中。您可以使用PHP将$\u POST输出为HTML表单字段,也可以使用PHP将$\u POST输出为Javascript数组。。您的选择。请澄清第二个选项,并举例说明。