该模型似乎与控制器一样有效。 AJAX将结果显示为“null”,因此我认为这是因为我们需要将数据作为json发送。有关如何将数据转换为正确格式并在视图中显示的任何想法
查看
<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 :(得分: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 ));
并在 ajax成功中获取您的回复并使用它:
success: function(response){
server_res = JSON.parse(response);
console.log(server_res);
$('#result_table').append('<p>hello world</p>');
}
答案 1 :(得分:0)
如果你想要html表单(不要返回),只需在控制器中打印/回显$data
。如果你想要json,那么打印/ echo json_encode($array)
并成功ajax写
success: function(results){
$('#result_table').append(results.arraykey);//arraykey=array key from controller
} // End
答案 2 :(得分: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>');
}