我有一个ajax初学者问题:
我有一个公司的数据库表:id,company_name,select_button,status
当用户点击公司行上的select_button时,状态更改为2,工作正常。但是,每个公司行还有一个进度条,当公司行的状态为2时,我希望该公司行的进度条将颜色从绿色(状态1)更改为红色(状态2)。这是我试图做的不成功的方法之一:
Model(name:get_status) - 获取每个公司行的状态:
public function get_status(){
$this->db->select('status')
->from('companies');
$query = $this->db->get();
return $query->result();
}
控制器(名称:状态) - 接收每个公司行的状态,并通过json发送给视图:
public function status(){
$output = $this->platform_model->get_status();
return json_encode($output);
}
查看(名称:platform_view) - 接收控制器结果并根据状态为2或1执行更改进度条颜色的逻辑:
$(document).ready(function(){
$ajax({
url: '<?php echo site_url('home/status');?>',
type: 'POST',
datatype: 'json',
success: function(output){
if(output === 2){
$('.ui-progressbar-value').css('background', 'red');
}else{
$('.ui-progressbar-value').css('background', 'green');
}
}
});
});
提前谢谢!
答案 0 :(得分:1)
首先,你应该echo
json字符串,而不是从控制器返回它。
其次,您需要了解您的AJAX将接收JSON对象,而不是单个值。
您的代码应该是(控制器):
public function status(){
$output = $this->platform_model->get_status();
echo json_encode($output);
}
和ajax:
$ajax({
url: '<?php echo site_url('home/status');?>',
type: 'POST',
datatype: 'json',
success: function(output){
// Sure you need the ===? Sometimes it does problems
if(output.status == "2" ){
$('.ui-progressbar-value').css('background', 'red');
}else{
$('.ui-progressbar-value').css('background', 'green');
}
}
}).fail(function(){
console.log("Error getting data from server");
});