如何重新填充动态字段?

时间:2012-10-02 20:17:04

标签: php ajax jquery field

见下图,它可以让我按照自己的意愿添加很多产品。首先,我从下拉列表中选择一个类别,然后通过Ajax在Items下拉列表中生成相关条目。我可以通过点击“添加另一个产品”来添加许多产品。

如果我选择了产品,我将需要点击提交/订购按钮,然后在添加到销售之前通过PHP(无Ajax)验证字段。如果验证没有通过 - 我需要重新填充所有选定的类别和条目(换句话说,再次创建产品字段) - 如何做到这一点?

注意:所有数据都将存储在$_POST

enter image description here

2 个答案:

答案 0 :(得分:1)

您的选择:

  • 使用$ _POST数据生成包含用户创建的字段的html
  • 存储$ _POST数据(例如在会话中)并将用户重定向回原始表单,如果找到已保存的数据,则必须包含生成用户创建字段的代码。

首选第二种选择。

编辑:关于选项二的额外信息。

验证失败时,在会话中保存$ _POST数据:$_SESSION['stored post'] = $_POST;并重定向到原始表单(发起POST的表单):header('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
}

答案 1 :(得分:0)

对于输入框,它就像做

一样简单
<input name="fname" value="<?php if(isset($_POST['fname'])) echo $_POST['fname']' ?>">

对于选择框,您必须遍历选项以找出应该选择哪个对象。