PHP表单输出多个字段重复

时间:2016-02-04 11:21:38

标签: php forms

您好我想从PHP帖子用PHP

创建这个数组输出

enter image description here

这里是我的FORM,用javascript复制带有.duplicated类的DIV数据

<?php print_r($_POST); ?>
<form method='post'>
    <input name='group_name'/>
    <input name='group_'/>
    <div class='duplicated'>
       <input name='group_values[][name]'/>
       <input name='group_values[][price]'/>
    </div>
    <div class='duplicated'>
       <input name='group_values[][name]'/>
       <input name='group_values[][price]'/>
    </div>
    </form>

此表单返回此数组

enter image description here

1 个答案:

答案 0 :(得分:3)

这是因为像这样的空括号会让php / html创建一个新的&#34;键/值&#34;,让你的

 <input name='group_values[][name]'/>
 <input name='group_values[][price]'/>

分为:

<input name='group_values[1][name]'/>
<input name='group_values[1][price]'/>

你应该看到一个区别,如果你需要它自己发生,你可以使用一个变量,将它设置为0或你希望你的数组从哪个值开始,并在每次你需要时给它+1新的&#34;组&#34;像这样:

<?php $i = 0; //Initializes the variable ?>
<input name='group_values[<?php echo $i; ?>][name]'/> //Array key = 0
<input name='group_values[<?php echo $i; ?>][price]'/> //Array key = 0 
<?php $i++; //Increases the variable with 1 ?>
<input name='group_values[<?php echo $i; ?>][name]'/> //Array key = 1
<input name='group_values[<?php echo $i; ?>][price]'/> //Array key = 1

当然,它可以以更有效/更智能的方式完成,但这只是为了给你一个基本的例子

对于Javascript,它将取决于您如何复制数据,但这个想法基本相同

var key = 0;
var duplicateInput1 = "<input name='group_values[" + key + "][name]'/>"  + 
                     "<input name='group_values[" + key + "][price]'/>";

key++;
var duplicateInput2 = "<input name='group_values[" + key + "][name]'/>"  + 
                     "<input name='group_values[" + key + "][price]'/>";

var duplicateForm = duplicateInput1.concat(duplicateInput2);