【问题标题】:PHP get the field values inside a duplicated div using jQuery clone method in form submitPHP在表单提交中使用jQuery克隆方法获取重复div中的字段值
【发布时间】:2015-03-29 13:06:24
【问题描述】:

在我的 codeigniter 视图中,我有一个表格行,当使用 jQuery 克隆方法单击按钮时,该行会重复。我的任务是在提交表单时获取重复行中的字段值。

这是我的代码:

<script>
function duplicate() {    
var original = document.getElementById('service');
var rows = original.parentNode.rows;
var i = rows.length - 1;
var clone = original.cloneNode(true); // "deep" clone
clone.id = "duplic" + (i); // there can only be one element with an ID
clone.name = "duplic" + (i); 
original.parentNode.insertBefore(clone, rows[i]);
}
</script>

    <div class="portlet-body">
    <div class="tab-content">
<?php

$attrib = array (
        'class' => 'addcomplaint',
        'id' => 'addcomplaint',
        'role' => 'form' 
);
echo form_open ( "vehicle/regcomplaint", $attrib );
?>
<!-- COMPLAINT INFO TAB -->
        <div class="tab-pane active" id="tab_1_1">
            <table style="padding: 0px;">
                <tr id="service">
                    <td class="form-group col-md-6" style="padding: 0px;">
                        <label class="control-label col-md-6" style="padding: 0px;">Complaint Description</label> 
                        <select name="complainttype" id="select2_sample4" class="select2 form-control">
                            <option value="" selected disabled>select complaint type</option>
                            <option value="Complaint Type 1">Complaint Type 1</option>
                            <option value="Complaint Type 2">Complaint Type 2</option>
                            <option value="Complaint Type 3">Complaint Type 3</option>
                            <option value="Complaint Type 4">Complaint Type 4</option>
                            <option value="Complaint Type 5">Complaint Type 5</option>
                        </select>
                    </td>
                    <td class="form-group col-md-6">
                        <label class="control-label col-md-6" style="padding: 0px;">Work Hours</label>
                        <input type="text" class="form-control col-md-6" name="workhours" id="workhours" style="padding-right: 0px;" />
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <button type="button" id="addmore" class="btn green" style="float: right; margin-right: 15px; margin-top: 20px;" onclick="duplicate()">
                            Add Complaint <i class="fa fa-plus"></i>
                        </button>
                    </td>
                </tr>
            </table>
            <div class="margiv-top-10">
                <input type="submit" class="btn green-haze" value="Submit" name="submit"> <a href="#" class="btn default">Cancel </a>
            </div>
        </div>
        <!-- END COMPLAINT INFO TAB -->
<?php echo form_close();?> 
</div>
</div>

当我尝试提交表单时,我得到的只是原始字段,而不是重复的字段。任何人都可以帮助我获得重复字段中的值。 提前致谢

【问题讨论】:

  • 克隆的字段是否与原始字段同名?如果是这样,您将需要修改代码为每个字段创建唯一名称,以避免用较新的值覆盖较早的值。
  • 没有重复的字段有不同的名称

标签: php jquery forms codeigniter clone


【解决方案1】:

在这些情况下,根据数组给出字段名称通常更容易——例如:

<p>Recommend a friend:</p>
<input type="text" name="recommended_friend[]"/>

这只是意味着您可以在服务器端执行以下操作:

foreach($_POST['recommended_friend'] as $recommend){
    // deal with the input field
}

这将适用于其中一个或数百个字段

【讨论】:

  • 当我使用基于数组和 foreach 循环的字段名称时,它给了我错误Message: Invalid argument supplied for foreach()
  • 试试$recommended_friend = $_POST['recommended_friend']; foreach($recommended_friend as $recommend){
猜你喜欢
  • 2018-08-06
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多