2017-07-04 3 views
0

Ich benutze CodeIgniter als mein PHP-Framework und benutze jQuery/AJAX, um Anfragen zu bearbeiten. Wenn ich Daten von einer AJAX-Anfrage zurückgeben würde und sie an meine Seite mit HTML-Elementen anhängen möchte, wo sollten die HTML-Elemente enthalten sein?CodeIgniter - HTML-DOM mit Ajax anzeigen

Im Modell? Wo behandeln Sie SQL-Abfragen.

class Item_model extendes CI_Model { 

    public function getAll() 
    { 
     $html = ''; 
     $query = $this->db->query("SELECT col1 FROM table1"); 
     foreach ($query->result() as $row) 
     { 
      $html .= '<span>'.$row->col1.'</span>'; 
     } 
     return json_encode(array('html' => $html)); 
    } 

Oder im Controller?

class Item extends CI_Controller { 

    public function item_list() 
    { 
     $html = ''; 
     $data = $this->Item_model->getAll(); 
     foreach($data as $dataitem){ 
      $html .= '<span>'.$dataitem['col1'].'</span>'; 
     } 

     echo json_encode(array('html' => $html)); 

    } 

Oder im Javascript?

success: function(result){ 

    $.each(result.col1, function(k, v) { 
     $("#div").append('<span>'+v+'</span>'); 
    }); 

} 

Ich habe über den Standard/konventionellen Weg nachgedacht. Aber wenn ich raten müsste, würde ich für den Controller gehen.

Antwort

0

Sollte im Javascript sein. Es vermeidet redundante Daten (Span-Tag) -Transaktionen.

über alle Verfahren, wie folgt,

schicken ajax Anfrage von Hinblick auf Regler, dann die Eingaben in das Modell passiert die DB-Operationen zu tun und die DB Ergebnisarray an den Controller zurück. Echo das Ergebnis-Array nach json_encoded.

view-> Controller-> modell-> Controller-> Ansicht