2014-01-08 119 views
0

模型似乎和控制器一樣工作。 AJAX將結果顯示爲「null」,所以我認爲這是因爲我們需要將數據作爲json發送。如何將數據放到正確的格式,並在視圖中顯示任何想法使用jQuery和CI顯示AJAX調用數據庫的數據

查看

<button type='button' name='getdata' id='getdata'>Get Data.</button> 

<div id='result_table' style="color:white;"> 
hola amigo 
</div> 

<script type='text/javascript' language='javascript'> 
$('#getdata').click(function(){ 
       $.ajax({ 
         url: '<?php echo base_url().'index.php/trial/getValues';?>', 
         type:'POST', 
         dataType: 'json', 
          error: function(){ 
          $('#result_table').append('<p>goodbye world</p>'); 
          }, 
         success: function(results){ 

          $('#result_table').append('<p>hello world</p>'); 

          } // End of success function of ajax form 
          }); // End of ajax call 

       }); 
</script> 

控制器

function getValues(){ 
    $this->load->model('get_db'); 
    $data['results'] = $this->get_db->getAll(); 
    return $data; 
} 

型號

class Get_db extends CI_Model{ 
    function getAll(){ 
     $query=$this->db->query("SELECT * FROM questions"); 
     return $query->result(); 
     //returns from this string in the db, converts it into an array 
    } 
} 

回答

0

只是打印/回聲控制器中的$data如果你想HTML表單(不返回)。如果你想JSON然後打印/回聲json_encode($array)

,併成功AJAX寫

success: function(results){ 
    $('#result_table').append(results.arraykey);//arraykey=array key from controller 
} // End 
+0

你是從控制器,使它[對象對象]得到JSON。也qID,電子郵件,qText ..是數組鍵。寫append(results.email)並看看會不會發生。你在正確的軌道 –

1
在你看來

,您設置數據類型爲JSON,所以你需要一個控制器,它的產生JSON輸出。 codeIgniter有一個生成這種類型的系統。您可以使用此代碼在您的控制器做到這一點:

$this->load->model('get_db'); 
$data = $this->get_db->getAll(); 

$this->output->set_content_type('application/json'); 
$this->output->set_output(json_encode($data)); 

阿賈克斯成功讓您迴應並使用它:

success: function(response){ 
    server_res = JSON.parse(response); 
    console.log(server_res); 

    $('#result_table').append('<p>hello world</p>'); 
} 
+0

謝謝你的迴應。我已經輸入了代碼,因爲您已經輸入了代碼,但我仍然沒有從數據庫獲得響應。 – user2796352

+0

什麼是'application/json'指向? – user2796352

+0

生成一個json來響應你的AJAX請求,你需要用'application/json'頭生成一個包。在你的AJAX成功請console.log(響應)併爲我寫輸出。 –

0

在控制器只是用這個

function getValues(){ 
    $this->load->model('get_db'); 
    echo json_encode($this->get_db->getAll()); 
} 

而在視圖中

success: function(results){ 
    results = JSON.parse(results); 
    $('#result_table').append('<p>hello world</p>'); 
}