我有一个提交字符串化JSON数组的表单。这是数据示例:
"[{'name':'i_cp_nm','value':'1'},{'name':'i_cp_tp','value':'2'},{'name':'i_cp_mb','value':'3'},{'name':'i_cp_em','value':'4'},{'name':'i_cp_jb','value':'5'},{'name':'i_cp_nt','value':'6'},{'name':'i_cp_nm','value':'7'},{'name':'i_cp_tp','value':'8'},{'name':'i_cp_mb','value':'9'},{'name':'i_cp_em','value':'10'},{'name':'i_cp_jb','value':'11'},{'name':'i_cp_nt','value':'12'}]";
这是所需的插入数据:
i_cp_jd i_cp_nm i_cp_tp i_cp_mb i_cp_em i_cp_jb i_cp_nt
xxx 1 2 3 4 5 6
xxx 7 8 9 10 11 12
这是当前循环,但我不知道这是否正确:
$arr_cp = //arr_data
foreach($arr_cp as $val_cp){
$dt_cp['i_cp_jd'] = $this->input->post('i_v_id');
//didn't know what to do here
$this->model_vendor->insert_vendor_pic($dt_cp);
}
插入方法:
function insert_vendor_pic($dt_cp){
$query = $this->db->insert('vendordetail_pic',$dt_cp);
return $query;
}
答案 0 :(得分:1)
您所要做的就是使用json_decode:
$arr_cp = json_decode($yourJsonData, true);
答案 1 :(得分:0)
如果您想系统地进行,那么您应该使用适当的JSON解析器/反序列化器来创建域的实例或您应该从该表单数据创建的任何内容,并将这些实例插入到数据库中。
答案 2 :(得分:0)
如果您想系统地进行,那么您应该使用适当的JSON解析器/反序列化器来创建域的实例或您应该从该表单数据创建的任何内容,并将其插入到DB中。
答案 3 :(得分:0)
json格式的数据,因此您必须使用
将json解码为数组$arr_cp = json_decode($arr_cp, TRUE);
然后将$ arr_cp转换为foreach循环
foreach($arr_cp as $val_cp){
$dt_cp['i_cp_jd'] = $this->input->post('i_v_id');
//didn't know what to do here
$this->model_vendor->insert_vendor_pic($dt_cp);
}
答案 4 :(得分:0)
尝试使用此功能将输入准备/转换为矩阵:
function prepareData($rawData) {
$rawData = str_replace("'", '"', $rawData);
$data = array();
foreach(json_decode($rawData, true) as $d) {
if (!isset($data[$d['name']])) {
$data[$d['name']] = array();
}
$data[$d['name']][] = $d['value'];
}
$rows = array();
foreach ($data as $col => $values) {
foreach ($values as $i => $v) {
if (!isset($rows[$i])) {
$rows[$i] = array();
}
$rows[$i][$col] = $v;
}
}
return $rows;
}
$rawData = "[{'name':'i_cp_nm','value':'1'},{'name':'i_cp_tp','value':'2'},{'name':'i_cp_mb','value':'3'},{'name':'i_cp_em','value':'4'},{'name':'i_cp_jb','value':'5'},{'name':'i_cp_nt','value':'6'},{'name':'i_cp_nm','value':'7'},{'name':'i_cp_tp','value':'8'},{'name':'i_cp_mb','value':'9'},{'name':'i_cp_em','value':'10'},{'name':'i_cp_jb','value':'11'},{'name':'i_cp_nt','value':'12'}]";
print_r(prepareData($rawData));
Array
(
[0] => Array
(
[i_cp_nm] => 1
[i_cp_tp] => 2
[i_cp_mb] => 3
[i_cp_em] => 4
[i_cp_jb] => 5
[i_cp_nt] => 6
)
[1] => Array
(
[i_cp_nm] => 7
[i_cp_tp] => 8
[i_cp_mb] => 9
[i_cp_em] => 10
[i_cp_jb] => 11
[i_cp_nt] => 12
)
)
最后,您可以按照自己喜欢的方式将此数据简单地插入数据库。