0

ajax初心者の質問があります:

会社のデータベーステーブルがあります:id、company_name、select_button、status

ユーザーが会社行の select_button をクリックすると、ステータスが 2 に変わり、正常に動作します。ただし、会社行ごとに進行状況バーもあり、会社行のステータスが 2 の場合、その会社行の進行状況バーの色が緑 (ステータス 1) から赤 (ステータス 2) に変わることを望みます。これは、私が試みた失敗した方法の1つです。

モデル (名前: 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');
                }

            }
         });
});

前もって感謝します!

4

1 に答える 1

1

まず第一にecho、json 文字列を取得し、コントローラーから返さないでください。

次に、AJAX が単一の値ではなく JSON オブジェクトを受け取ることを理解する必要があります。

あなたのコードは (controller) である必要があります:

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");
   });
于 2013-08-21T10:23:26.820 に答える