无法显示Ajax值

时间:2018-03-19 05:45:16

标签: php ajax codeigniter

我的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)时,它可以工作。

3 个答案:

答案 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)

在使用数据

之前,您必须要求 $。pasrseJSON
function rate() {
 $.ajax({
  type: 'POST',
  url: '<?php echo base_url()."rate/rating"?>',
  dataType: 'json',
  success: function(data) {
    data=$.parseJSON(data);
    $('#aaaa').val(data.var_name);
  }
});