2015-05-30 2 views
0

вот мой код:Недействительного аргумента для Еогеаспа(), когда получить JSON

$.ajax({ 
    type: "POST", 
    url: '<?php echo base_url();?>index.php/profile/add_jobs', 
    datatype: "json", 
    traditional: true, 
    data: {json:JSON.stringify(all_publication)}, 
    success: function (response) { 
     console.log(response); 
     $('.all').html(''); 
}});return false; //disable refresh 

и all_publication представляет собой массив, содержащее значение,

в контроллере я ставлю этот код:

public function add_jobs() 
{ 
    echo ($_POST['json']); 
    foreach ($_POST['json'] as $key => $value) { 
     $data[] = array('name'=>$value['pub_name'],'details'=>$value['pub_details'],'date_time'=>$value['pub_date']); 
    } 
    $this->profile_model->insert_publication($data); 
} 

Но мне показалось это сообщение «Недопустимый аргумент, предоставленный для foreach()»

pleas e покажите мне путь к моей проблеме.

ответ

0

Вам не нужно выделять массив. Попробуйте:

data: {json : all_publication}, 
+0

та же самая проблема. . "Недопустимый аргумент для foreach()" –

+0

Каков результат, когда вы делаете 'print_r ($ _ POST ['json']);'? –

+0

при выполнении «echo $ _POST ['json']« результат в консоли - это массив »{« 0 »: {« pub_name »:« name2 »,« pub_domain »:« {\ "10 \": \ "Web \ ", \" 26 \ ": \" Формальная модель \ "}", "pub_details": "details2", "pub_date": "2015-05-27"}, "1": {"pub_name": "name2" , "pub_domain": "{\" 10 \ ": \" Web \ ", \" 26 \ ": \" Формальная модель \ "}", "pub_details": "details2", "pub_date": "2015-05 -27 "}}" , но когда я помещаю «foreach» Показывает мне это сообщение «Недопустимый аргумент, предоставленный foreach()» –

0

Использование json_decode со вторым параметром, как истинный (для получения вывода, как массив) перед передачей его в цикл по каждому элементу

Так пересмотренную код выглядит как

public function add_jobs() 
{ 
    echo ($_POST['json']); 
    $postArray=json_decode($_POST['json'], true); // Decoding json to array 
    foreach ($postArray as $key => $value) { 
     $data[] = array('name'=>$value['pub_name'],'details'=>$value['pub_details'],'date_time'=>$value['pub_date']); 
    } 
    $this->profile_model->insert_publication($data); 
} 
Смежные вопросы