2014-01-18 3 views
0

Javascriptпрогресс изменить значение бар от АЯКС

<script type="text/javascript"> 
var checkScores = function() { 
    $.ajax({ 
     url: 'http://127.0.0.1/ProgVsProg/main/countScoreCh', 
     success: function(response) { 

     //some code 

     } 
    }); 
} 
    $(function() { 
    $("#progressbar").progressbar({ 
    value: 50 
}); 
}); 

</script> 

контроллер

public function countScoreCh(){ 
    $id = $this->session->userdata('userID'); 
    $data['getScore'] = $this->lawmodel->battleUserID($id); 
    foreach($data['getScore'] as $row){ 
     $scoreCH = $row->challengerScore; 
     echo json_encode(
     array(
     'scoreCH' => $scoreCH, 
       ) 
      ); 
    } 
} 

EDITED

<script type="text/javascript"> 
var checkScores = function() { 
    $.ajax({ 
     url: 'http://127.0.0.1/ProgVsProg/main/countScoreCh', 
     success: function(response) { 

     //some code that will be call to the progressbar value: 

     } 
    }); 
} 
    $(function() { 
    $("#progressbar").progressbar({ 
    value: //the value will be base on the result of the controller $scoreCH 
}); 
}); 

</script> 

Как я могу Обновит e значение на базе индикатора выполнения на выходе контроллера? с контроллера используется json_encode. если выход контроллера равен 50, тогда значение индикатора прогресса будет изменено на 50.

Нужна помощь .. я не знаю, подходит ли json_encode для его использования .... но любое решение будет делать.

ответ

0

Вы должны получить JSON от вашего AJAX вызова и применить значение data.progress на вашем Progressbar объекта:

короткий пример:

var checkScores = function() { 
    $.ajax({ 
     url: 'http://127.0.0.1/ProgVsProg/main/countScoreCh', 
     success: function(response) { 
     dataType: "json", // data type json 
     success: function(data){ 
      var progress = data.progess; 
      $("#progressbar").progressbar({ 
       value: progress 
      }); 
     } 


     }); 
    }); 

Тогда ваш PHP будет выглядеть

public function countScoreCh(){ 
    $id = $this->session->userdata('userID'); 
    $data['getScore'] = $this->lawmodel->battleUserID($id); 
    foreach($data['getScore'] as $row){ 
     $scoreCH = $row->challengerScore; 
     echo json_encode(
      array(
       'scoreCH' => $scoreCH, 
       'progress' => 50 
      ) 
     ); 
    } 
} 
+0

Я отредактировал свой пост немного .. я думаю, что есть какое-то недоразумение. Моя проблема заключается в том, как изменить значение в прогрессивной базе на вызов ajax или выход контроллера. а не просто поставить значение для вызова значения progressbar. :)) – Zurreal

+0

, а также .. когда я ставлю '$ (" #progressbar ") .progressbar' ниже' success: function' индикатор выполнения не будет отображается. – Zurreal

+0

Вы должны поместить код progressbar в функцию succes. Эта функция обрабатывает успех запроса, который вы пытаетесь сделать. В примере, который я вам дал, вы изменяете значение progressbar на основе вызова ajax, вам нужно только заменить 50 в PHP-коде своим значением ... –

Смежные вопросы