【问题标题】:CodeIgniter process multi input fields added with jQueryCodeIgniter 处理使用 jQuery 添加的多输入字段
【发布时间】:2014-11-18 15:36:51
【问题描述】:

我有一个将数据添加到数据库中的表单。我有单个输入字段和按钮,可在单击时添加更多输入字段。我的问题是如何在控制器中获取所有输入并将其发送到模型。到目前为止,我的代码是: jQuery:

<script>
    $('a').click(function(e){
        
        
       $('#inp').append('<div><input class = "new_input" type=text name="name[]"/><a class="remove_field "href="#"> X</a><div><br/>');
       $('.remove_field').click( function(e){
         e.preventDefault();
         $(this).parent('div').remove();
       })
    });
</script>

表格:

<?php
// Forma za unos podataka
echo  $this->session->flashdata('item');
echo '<h4>Unesite podatke</h4>';
echo '<div id="warning"></div>';

$att = array('name'=>'form','onsubmit'=>" return validation()");
echo form_open('admin/crud/adding/',$att);

echo form_label('Novi podatak:', 'input_data_info') . br() . br();
$data = array(
              'name'        => 'input_data_info',
              'id'          => 'input_data_info',
              'placeholder'       => 'Unestite podatke',
             );

echo form_input($data) . br() . br();
echo '<div id="inp"></div>';

echo "<a href='#'>".'Novi unos'."</a>" .br() .br();
echo form_submit('save', 'Snimi') . br() . br();
echo form_submit('add', 'Dodaj').br();


echo form_close();

?>

控制器:

$input_data_info = (string)$this->input->post('input_data_info', TRUE);
             //model za dodavanje podataka 
            $this->load->model('Data');
            $query = $this->Data->add($input_data_info);  

【问题讨论】:

    标签: javascript php jquery codeigniter input


    【解决方案1】:

    第一个输入字段名称是'input_data_info',然后JQuery添加带有'name[]'的输入字段

    当您想从所有输入字段中提取数据时,它们首先需要有一个通用名称。

    因此,将您最初在表单中创建的输入字段重命名为 name= 'name[]' 以生成您的代码:

    $data = array(
              'name'        => 'name[]',
              'id'          => 'input_data_info',
              'placeholder'       => 'Unestite podatke',
             );
    

    然后在你的控制器中使用这样的东西:

    $all_input_data = $this->input->post('name');

    //$all_input_data 是一个包含所有输入值的数组。

    【讨论】:

    • 如果您对控制器收到的帖子感到困惑,您可以使用 echo "
      "; print_r($all_input_data);这会以有组织的方式向您显示所有数组内容!
    猜你喜欢
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多