如何从多维$ _POST数组创建重复的表单

时间:2014-05-29 19:44:38

标签: php forms post foreach

我在主题中的表单是一个多部分表单,并提交以下POST数据

 Array
(
[action] => save
[packageID] => 0
[form] => Array
    (
        [post_title] => Title
        [post_content] => Description
        [category] => 30,35,7
    )

[custom] => Array
    (
        [post_tags] => keyword, key, keys
        [phone_number] => 577XXXXXX
        [price] => 400
        [map_location] => 
        [map-log] => 
        [map-lat] => 
        [map-country] => 
        [map-address1] => 
        [map-address2] => 
        [map-address3] => 
        [map-zip] => 
        [map-state] => 
        [map-city] => 
    )

[check_multi] => 1
)
1 

我想动态创建第二个表单,使用foreach循环和隐藏字段,其中隐藏字段的名称将与$ _POST [key]匹配,隐藏字段的值将是$ _POST [value]的值< / p>

原始表单的名称设置如下,例如

name="custom[map-log]"

我是否正确认为我可以为表单键执行此操作,例如

name="form[post_title]"

需要注意的是,显然值会发生变化,但我也不会总是知道它们的密钥是否相同所以我不能只是复制一个表格并用我需要它创建的POST数据填充它自动填充。

提前致谢。

1 个答案:

答案 0 :(得分:1)

OK杰拉布兰查德为你的方向提供了巨大的+1。有时它没有得到帮助,这有助于你知道如何帮助自己,让你到达那里。你对它的工作是正确的。我以前从未在表单名称中看到过这种格式,但它非常方便。这是我的解决方案。

<?php foreach($_POST as $key => $value){

   if(is_array ($value)){
      foreach($value as $subkey => $subvalue){   ?>
         <input type="text" name="<?php echo $key; ?>[<?php echo $subkey; ?>]" value="<?php echo $subvalue; ?>" /><br />
      <?php  }
   } else {   ?>
         <input type="text" name="<?php echo $key; ?>" value="<?php echo $value; ?>" /><br />
    <?php  }
}

而且我理解为什么它因为没有用勺子喂我昨晚在疲惫中寻找的答案而工作得更多。