您好我正在尝试使用select2多选并通过ajax将所选选项发送到PHP codeigniter控制器。我需要遍历模型中的json解码值,但它不起作用。
用于发布所选值的Javascript:
$("#add_group").on("click",function(e){
e.preventDefault();
var $group=document.getElementById('group').value;
var $foreman=$("#foreman").select2("data");
var $foreman_id=$foreman['id'];
var $foreman_name=$foreman['text'];
var $employee = $("#employee").select2("data");
var employees = {
info: []
};
var keys = Object.keys($employee),
len = keys.length,
i = 0,
prop,
value;
while (i < len) {
prop = keys[i];
value = $employee[prop];
employees.info.push({
"id" : value.id,
"name" : value.text
});
i += 1;
console.log('Employees : '+employees.info)
}
var $json_emp= JSON.stringify(employees);
console.log('Employees : '+$json_emp);
ajax("add_group",$group,$foreman_id,$foreman_name,$json_emp);
});
型号:
public function add_group()
{
$group = $this->security->xss_clean($this->input->post('group'));
$foreman_id = $this->security->xss_clean($this->input->post('foreman_id'));
$foreman_name = $this->security->xss_clean($this->input->post('foreman_name'));
$json_emp = $this->security->xss_clean($this->input->post('json_emp'));
$array_emp = json_decode($json_emp,true);
var_dump($array_emp);
//echo json_encode($array_emp);
//return false;
print_r($array_emp->info);
$emp_ids = '';
$emp_names='';
$i=0;
//$employee_id = $array_emp['info'][$i]['id'];
//$employee_name = $array_emp['info'][$i]['name'];
foreach( $array_emp['info'][$i] as $emp_info){
$emp_ids.=$emp_info->id;
$emp_names.=$emp_info->name;
$i=$i+1;
}
echo 'Employee IDs'.$emp_ids;
$crt_date = date('Y-m-d H:i:s');
$data_group = array(
'group_name' => $group,
'foreman_id' => $foreman_id,
'foreman_name' => $foreman_name,
'employees_in_group' => $emp_names,
'employees_in_group_id' => $emp_ids,
'rec_status' => 'A',
'crt_dt' => $crt_date,
);
$result = $this->db->insert('group', $data_group);
$insert_id=$this->db->insert_id();
if($insert_id)
return $insert_id;
else
return false;
}
打印_r输出json_decode()
Array
(
[info] => Array
(
[0] => Array
(
[id] => 10
[name] => employee1
)
[1] => Array
(
[id] => 12
[name] => emplyee3
)
)
)
数组的var_dump输出
array(1) {
["info"]=>
array(3) {
[0]=>
array(2) {
["id"]=>
string(2) "10"
["name"]=>
string(9) "employee1"
}
[1]=>
array(2) {
["id"]=>
string(2) "11"
["name"]=>
string(9) "employee2"
}
[2]=>
array(2) {
["id"]=>
string(2) "12"
["name"]=>
string(8) "emplyee3"
}
}
}
如何在模型中循环显示这些值?
已尝试但失败的代码如下:
$emp_ids = '';
$emp_names='';
$i=0;
foreach($array_emp as $row) { //foreach element in $arr
foreach($row['info'] as $employees){
foreach($employees[$i] as $emp_info){
$emp_ids.=$emp_info['id'];
$emp_names.=$emp_info['name'];
}
}
$i=$i+1;
}