繁体   English   中英

无法显示Ajax值

[英]Can't display Ajax value

我的Ajax有问题,它无法显示数据库中的数据。

调节器

public function rating() {
 $rating = $this->db->select_avg('hasil_rating')
                    ->get('tb_rating')->row_array();
 echo json_encode($rating);
}

阿贾克斯

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)它可以工作。

只需将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'}

希望对您有帮助。

您需要在ajax成功中首先解码json。

用这个。

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);
  }
});

使用此功能,您可以访问数据中的不同值,并在html中设置值。

更新

在您的控制器中,您可以使用json_encode返回值,例如

echo json_encode(array("success"=>true,"msg1"=>"test ajax","msg2"=>"test ajax 2"));

在ajax成功函数中,可以使用msg1的值

var d = $.parseJSON(data);
alert(d.msg1); //will return "test ajax"
alert(d.msg2); //will return "test ajax 2"

通过这种方式,您可以访问json对象中的每个值。

您必须先使用$ .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);
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM