我正在使用表单。当用户点击按钮时,ajax发送该值,然后控制器加载模型和查询数据库以返回一个或一些注册表。
然而,当返回时,我得到一个响应,但它似乎从表中获取所有数据而不是做一个where子句.. 此外,我无法将此结果放入div
--model
function get($where=array()) {
$q = $this->db->get_where('tbl_name',$where);
$result = $q->result_array();
return $result;
}
-- controller
function get_em()
{
$key = $this->input->post('key');
$this->load->model('model');
$data['result'] = $this->model->get_em( array('id_guy' => $key)) ;
header('Content-type: text/plain');
echo json_encode($data);
}
--jquery
$(document).ready(function() {
$('#btn').click(function(){
var key = $("#key").val();
var postData = {
'key' : key
};
$.ajax({
type: "POST",
url: "<?php echo base_url()?>index.php/controller/get_em",
//data: postData ,
dataType:"json",
data: postData,
success: function(response) {
$.each(response, function(index,item){
$("#wrapper_succes").append('<div><b>' + index[0] + '</b></div><hr />');
});
}
});
});
});
如何在$query->result_array()
返回时根据某些条件从数据库中选择字段的结果打印结果,因此在控制器中我理解$data['result'] = $this->model->
存储在结果中所以在php中我只会循环 $ result ...但是如何使用ajax执行此操作,我无法打印任何resuLT,我只能 undefined 或[对象对象]的东西
当用firebug调试时,我可以看到响应如下:
{"result":[{"id_guy":"1","name":"joe",....,"last":"last man"}, ....
答案 0 :(得分:0)
如果您的回复看起来像{"result":[{"id_guy":"1","name":"joe",....,"last":"last man"}]}
。
然后你有:
Object
,其中包含Array
直接在响应中使用$.each
将仅使用值循环一次:
index = result;
item = [{"id_guy":"1","name":"joe",....,"last":"last man"}]
请注意,由于项目包含object
,如果您尝试将其转换为[object Object]
String
这意味着您必须通过result
,循环array
,然后循环object
属性。
给出类似的东西(Fiddle):
$.each(response.result, function(index,item){
$.each(item, function(index,item){
$("body").append(index + " " + item + " ; ");
});
$("body").append("<BR>");
});