2017-07-04 48 views
0

我使用CodeIgniter作爲我的PHP框架並使用jQuery/AJAX來處理請求。如果我要從AJAX請求中返回數據,並且希望將其附加到帶有HTML元素的頁面,那麼應該在哪裏包含HTML元素?CodeIgniter - 使用Ajax顯示HTML DOM

在模型中?你在哪裏處理SQL查詢。

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)); 
    } 

或者在控制器中?

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)); 

    } 

或在Javascript中?

success: function(result){ 

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

} 

我一直在想標準/傳統的做法。但是如果我必須猜測,我會去控制器。

回答

0

應該在Javascript中。它將避免冗餘數據(跨度標籤)事務。

在所有流程如下,

從視圖中發送的Ajax請求控制器,然後通過輸入模式做數據庫操作和DB結果數組的形式返回到控制器。在json_encoded之後回顯結果數組。

視圖 - >控制器 - >模型 - >控制器 - >視圖