【问题标题】:PHP into database with dynamic form with javascript (codeigniter)使用 javascript (codeigniter) 以动态形式将 PHP 导入数据库
【发布时间】:2015-06-22 17:03:48
【问题描述】:

我想使用数组插入多个数据(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);

【问题讨论】:

    标签: javascript php arrays codeigniter


    【解决方案1】:

    如果您希望在一系列批次中使用它们,那么您必须执行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
    

    然后在制作完上述数组后,您可以使用活动记录的-&gt;insert_batch()。它会为您执行多次插入,此外,您的值会自动转义。

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

    【讨论】:

    • 好吧它的工作,但如果我想插入数据库,它会显示一个错误,如----INSERT INTO kegiatan_pembicara (0, 1, 2) VALUES (数组,数组,数组)----
    • @Fatchul 我修改了我的答案的某些部分,以便您可以将新创建​​的数组用于模型中的insert_batch()
    • @Fatchul 顺便说一下,你能不能也发布你的视图文件,也可以发布表格,以及var_dump($_POST)
    • @Fatchul 很高兴这有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多