具有多个插入行的Codeigniter表单

时间:2014-06-07 16:50:20

标签: php codeigniter

我想添加多个具有多个重复表单的行,即时加入模型。

1#我添加玩家,玩家可以拥有1或N个工作。

2#创建播放器时,您可以在同一表单中添加1个或多个作业。默认情况下,我只为1个作业显示1个输入,但如果您单击该按钮,则会显示一个新输入以填充该新作业的新作业。

我的观点:

Name<input type="text" name="name" value="<?php echo set_value('name'); ?>" />

Jobs<input type="text" name="jobs[0]" value="<?php echo set_value('jobs[0]'); ?>" />

<button id="add_job">Add new job</button>

<!-- if button click, jquery add new input -->
Jobs 2<input type="text" name="jobs[1]" value="<?php echo set_value('jobs[1]'); ?>" />

我的控制器:

$this->form_validation->set_rules('name', 'name', 'trim|required|min_length[3]|max_length[64]');
$this->form_validation->set_rules('jobs[]', 'job', 'trim|required|min_length[3]|max_length[64]');

...

$this->players_model->create_player($img['file_name'])

我的模特:

function create_player($pic)
{
    $new_member_insert_data = array(  
        'name' => $this->input->post('name'),
        'pic' => $pic
    );
    $insert = $this->db->insert('players', $new_member_insert_data);
    $id_player = $this->db->insert_id();

    // problem starts here
    $new_member_insert_jobs = array();

    //for() {
        $new_member_insert_jobs [] = array(
            'id_player' => $id_player,
            'job' => $this->input->post('jobs')[]
        );
    //}
    $this->db->insert_batch( 'estudios', $new_member_insert_jobs );

1 个答案:

答案 0 :(得分:0)

你可以尝试代码

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

            $count =count($this->input->post('job')); //number job
            $data2 =array();
                for($i=0; $i<$count; $i++)  
                {
                                  $data2[] = array(
                  'name' => $name,
                                     'job' => $job[$i],
                                     );     
                                }
         $this->db->insert_batch('estudios', $data2);