2016-07-30 4 views
0

Ich muss Objekte eines Arrays in einer Ansicht anzeigen, die von einer anderen Ansicht zum Controller gesendet wurde.Anzeige ajax gepostetes Array in Codezeichensicht

JQuery Ajax-Aufruf

details ist ein Array mit wenigen Objekten

$(document).ready(function() { // working 
    $("#nxt").click(function() { 
     var tmp = details; 
     var more_details = JSON.stringify(tmp); 
     $.ajax({ 
      type: "POST", 
      url: 'http://localhost/application/index.php/Welcome/detailsLoad', 
      data: {more_details : more_details }, 
      success : function(){ 
       console.log('Posted'); 
       location.href="http://localhost/application/index.php/Welcome/detailsLoad" 
      }, 
      error: function(){ 
       alert('Error!'); 
      } 
     });  
    }); 
}); 

-Controller

public function detailsLoad() 
{ 
     $moreDetails= $this->input->post('more_details'); 
     $this->load->view('simulation',$moreDetails); 
} 

Ansicht

<?php 
     foreach($moreDetails['more_details'] as $result) { 
      echo $result['object1'], '<br>'; 
      echo $result['object2'], '<br>'; 
     } 
?> 

mir helfen, diesen Code zu modifizieren und beheben

Antwort

0

Wenn Sie Daten aus dem Ajax-Aufruf wollen von Ihrem Controller zu Ihrer Ansicht zu bewegen, sollten Sie den Namen des Variable auf innerhalb Ihrer Ansicht verwendet werden:

$data = []; 
$data['moreDetails'] = $this->input->post('more_details'); 
$this->load->view('simulation',$data); 

Dann können Sie die Variable $moreDetails in der Ansicht verwenden:

foreach ($moreDetails as $result) { 
    echo $result['object1'], '<br>'; 
    echo $result['object2'], '<br>'; 
} 
+0

Fehlermeldung: 'Invalid argument für foreach geliefert()' –

+0

Sie können versuchen, 'var_dump ($ moreDetails;)' zu verwenden, um den Inhalt der Variablen zu sehen. Wenn Sie 'Array' nicht bereitstellen, können Sie es nicht durchlaufen. – Dekel

+0

ja! Was ist mit "NULL"? Was soll ich tun? –