Codeigniter - 发布到控制器

时间:2018-01-08 04:49:26

标签: php jquery arrays codeigniter

我有一个视图页面

$nameArray = array('name' => 'Formname', 'id' => 'Formname');
echo form_open_multipart('controller/file_upload_function',$nameArray);
<table id="companytable" >
    <tr><td><input type="file" id="dummyfile" name="dummyfile"></td></tr>
    <tr>
         <td >
           <label id="addlabel" style="cursor: pointer;">
                        <i class="fa fa-plus-circle" aria-hidden="true"></i></label>
        </td>
    <tr>
        <td>  
              <input type="text" name="companyname[]"  class="cmp_textbx" placeholder="Enter Company">
        </td>
    </tr>
    <tr>
        <td>
            <input type="submit" id="btn_upload" name="btn_upload" value="Save">
        </td>
   </tr>
</table>
<?php echo form_close(); ?>

使用Jquery我需要添加更多&#39; companyname&#39;根据用户的字段(On cliking&#39;添加公司&#39;标签)。&#39; companytable&#39;是表的id。

$("#addlabel").click(function(){
    $("#companytable").append('<tr><td><input type="text" name="companyname[]"  class="cmp_textbx" placeholder="Enter Company"></td></tr>');
});

问题在于,当我尝试提交观点并尝试获取数组项目时,公司名称为&#39;。

$company_items = array();
$company_items = $this->input->post('companyname');
print_r($company_items);

我只能获得已经给出视图页面的数组的第一项。附加的数组项目丢失了。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

enter image description here您的HTML代码运行正常。问题来自jquery或添加按钮。如果您正在使用html按钮标记,则必须在jquery中使用preventDefault(),如

$('.add').click(function(e){
e.preventDefault();
$("#companytable").append('<tr><td><input type="text" name="companyname[]"  class="cmp_textbx" placeholder="Enter Company"></td></tr>');
}); 

或者您可以在选择类型作为按钮时使用输入,为此您不需要对代码进行任何更改。