我的ajax有问题,无法显示数据库中的数据。
控制器
public function rating() {
$rating = $this->db->select_avg('hasil_rating')
->get('tb_rating')->row_array();
echo json_encode($rating);
}
的Ajax
function rate() {
$.ajax({
type: 'POST',
url: '<?php echo base_url()."rate/rating"?>',
dataType: 'json',
success: function(data) {
$('#aaaa').val(data);
}
});
输入
<input id="aaaa" type="text" value="">
当我使用val()
时,结果为 [object Object] ,当我使用html()
时,结果为为空。但是,当我使用console.log(data)
时,它可以工作。
答案 0 :(得分:1)
只需将json对象转换为字符串即可。
$('#aaaa').val(data.someVar);
例如,
var jsonVal = {val1:'one',val2:'two'};
alert(jsonVal); // it will print [object][object]
alert(jsonVal.val1); // one
alert(jsonVal.val2); // two
alert(JSON.stringify(jsonVal)) // it will print {val1:'one',val2:'two'}
希望它会对你有所帮助。
答案 1 :(得分:0)
你需要首先在你的ajax成功中解码json。
使用此功能。
ViewFlipper
使用此功能,您可以从数据中访问不同的值,并在html中设置值。
在您的控制器中,您可以使用json_encode返回值,如
function rate() {
$.ajax({
type: 'POST',
url: '<?php echo base_url()."rate/rating"?>',
dataType: 'json',
success: function(data) {
var d = $.parseJSON(data);
$('#aaaa').val(d.value);
}
});
在你的ajax成功函数中获取msg1的值你可以使用
echo json_encode(array("success"=>true,"msg1"=>"test ajax","msg2"=>"test ajax 2"));
通过这种方式,您可以访问json对象中的每个值。
答案 2 :(得分:0)
在使用数据
之前,您必须要求 $。pasrseJSONfunction rate() {
$.ajax({
type: 'POST',
url: '<?php echo base_url()."rate/rating"?>',
dataType: 'json',
success: function(data) {
data=$.parseJSON(data);
$('#aaaa').val(data.var_name);
}
});