使用 javascript (codeigniter) 以动态形式将 PHP 导入数据库
Posted
技术标签:
【中文标题】使用 javascript (codeigniter) 以动态形式将 PHP 导入数据库【英文标题】:PHP into database with dynamic form with javascript (codeigniter) 【发布时间】: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);
【问题讨论】:
【参考方案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
然后在制作完上述数组后,您可以使用活动记录的->insert_batch()
。它会为您执行多次插入,此外,您的值会自动转义。
// Model
public function add_pembicara($data)
$this->db->insert_batch($data);
【讨论】:
好吧它的工作,但如果我想插入数据库,它会显示一个错误,如----INSERT INTOkegiatan_pembicara
(0
, 1
, 2
) VALUES (数组,数组,数组)----
@Fatchul 我修改了我的答案的某些部分,以便您可以将新创建的数组用于模型中的insert_batch()
@Fatchul 顺便说一下,你能不能也发布你的视图文件,也可以发布表格,以及var_dump($_POST)
@Fatchul 很高兴这有帮助以上是关于使用 javascript (codeigniter) 以动态形式将 PHP 导入数据库的主要内容,如果未能解决你的问题,请参考以下文章
在 CodeIgniter 中寻找一些 Javascript 类的好例子
CodeIgniter 和 Javascript/Jquery 库
在 Codeigniter 中使用 javascript 多字段的动态选择框
当数据在javascript codeigniter php中使用ajax成功功能时,如何禁用页面重新加载?