Значит так, есть модель codeigniter'а внутри функция edit, в нее передается json объект, внутри есть фореач, который по идее надо бы свернуть в рекурсию... третий день пытаю, но никак не получается... :huh:
function edit()
{
$get = $this->input->get();
$menuid = $get['id'];
$json = json_decode($get['json']);
$i=0;
$ii = 0;
$iii = 0;
foreach ($json as $row) {
$i++;
$id = $row->id;
$this->db->where('id', $id);
$this->db->update('menu_items', array('order'=>$i, 'parent'=>'0', 'menu_id'=> $menuid));
if ($row->children) {
foreach ($row->children as $k) {
$ii++;
$cid = $k->id;
$this->db->where('id', $cid);
$this->db->update('menu_items', array('order'=>$ii, 'parent'=>$id, 'menu_id'=> $menuid));
if ($k->children) {
foreach ($k->children as $par) {
$iii++;
$kid = $par->id;
$this->db->where('id', $kid);
$this->db->update('menu_items', array('order'=>$iii, 'parent'=>$k->id, 'menu_id'=> $menuid));
}
}
}
}
}
print_r($json);
}