用javascript(codeigniter)动态表单将PHP导入数据库

时间:2015-04-16 10:36:59

标签: javascript php arrays codeigniter

我想使用数组插入多个数据(PHP CodeIgniter)。但我仍然发现错误。错误是数组不清楚

function insert(){

    $hitung=count($_POST['pembicara']);

    $pengisi=implode(',',$_POST['pembicara']);
    $materi=implode(',',$_POST['materi']);
    $alasan=implode(',',$_POST['alasan']);

    $datapembicara = array(
    'id_kegiatan'   => $x,
    'nama_pembicara'   => $pengisi,                                         
    'materi'      => $materi,                                           
    'alasan'      => $alasan,
    );

    $this->m_admin_smf->add_pembicara($datapembicara);
}

当我var_dump显示结果如

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '1,2' (length=9)
  'materi' => string '1,2' (length=3)
  'alasan' => string '1,2' (length=3)

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '1,2' (length=9)
  'materi' => string '1,2' (length=3)
  'alasan' => string '1,2' (length=3)

结果应该像

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '1' (length=9)
  'materi' => string '1' (length=3)
  'alasan' => string '1' (length=3)

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '2' (length=9)
  'materi' => string '2' (length=3)
  'alasan' => string '2' (length=3)

我该怎么办?

怎么样这样?但显示错误

$hitung = count($_POST['pembicara']);
$datapembicara = array();
for($i = 0; $i < $hitung; $i++) {
    $datapembicara[] = array(
        'id_kegiatan' => $x,
        'nama_pembicara' => $_POST['pembicara'][$i],
        'materi' => $_POST['materi'][$i],
        'alasan' => $_POST['alasan'][$i],
    );
}

$this->m_admin_smf->add_pembicara($datapembicara);

1 个答案:

答案 0 :(得分:2)

如果你想在一系列批次中使用它们,那么你将不得不做除implode以外的其他事情,因为行为将与你需要的行为不同。您可以使用简单的for循环将这种数组结构创建为一系列批次:

// Controller
function insert()
{

    $hitung = count($_POST['pembicara']);
    $datapembicara = array();
    for($i = 0; $i < $hitung; $i++) {
        $datapembicara[] = array(
            'id_kegiatan' => $x,
            'nama_pembicara' => $_POST['pembicara'][$i],
            'materi' => $_POST['materi'][$i],
            'alasan' => $_POST['alasan'][$i],
        );
    }

    var_dump($datapembicara);

    $this->m_admin_smf->add_pembicara($datapembicara);
}

旁注:我建议使用input类的codeigniter,因为它可以为你处理XSS。

$value = $this->input->post('value', true); // add true parameter flag

然后在创建所述数组后,您可以使用->insert_batch()活动记录。它将为您执行多次插入,此外,您的值会自动转义。

// Model
public function add_pembicara($data)
{
    $this->db->insert_batch($data);
}