从动态生成的HTML表单中检索字段

时间:2013-08-19 10:49:04

标签: php jquery html

我有一个表单,我允许用户使用JQuery动态克隆一些字段(参见here for example)。

<form  name="add_treatment" method="post" action="<?php echo thisURL() ?>">
     <fieldset>
       <legend>Choose treatment</legend> 
       <select id="treatment_id" name="treatment">
           <option>1</option>
           <option>2</option>
           <option>3</option>
       </select>
    </fieldset>

    <fieldset id="event-set">
       <legend>Event</legend>    
       Start <input type="number" name="start"><br>
       End <input type="number" name="end">
    </fieldset>

    <div id="newFields"></div>

    <input type="button" value="+ Add event" id="addInputs" style="width: 20%"/><br><hr>

    <input type="submit" value="Display">
</form>

<script type="text/javascript">
    $('#addInputs').click(function() {
        $('#event-set').clone().appendTo('#newFields');    
    }); 
</script>

表单用于通过“post”方法显示数据。不同字段的名称属性用于从POST方法中提取它们。所以我在脚本的开头有这个代码:

<?php if($_POST){
 echo $_POST['treatment'];
 echo $_POST['start'];
 echo $_POST['end'];
} ?> 

问题是,当我复制一些字段时,all都具有相同的name属性。有没有办法检索具有相同名称的所有字段,或区分它们?

提前致谢。

3 个答案:

答案 0 :(得分:1)

使用:

    Start <input type="number" name="start[]"><br>
    End <input type="number" name="end[]">

而不是:

    Start <input type="number" name="start"><br>
    End <input type="number" name="end">

那么你将在$ _POST ['start']和$ _POST ['end']中有一个数组。

请参阅:Array posting in PHP

答案 1 :(得分:0)

您可以像这样获得所有名为“start”的输入

$("input[name='start']")

答案 2 :(得分:0)

使用:

Start <input type="number" name="start[]"><br>
End <input type="number" name="end[]">

而不是:

Start <input type="number" name="start"><br>
End <input type="number" name="end">

updated code