0

ブートストラップ プログレス バーを更新するために ajax 呼び出しを行っています。AJAX 呼び出しが成功すると、次のようになります。

$(function () {
    var percent = data['minutes'] / 30 * 100;

    $('#progressbarr').html("<div class='bar' id='progressbar' style='width: "+ percent +"%;'></div>");
}

今、私は data['minutes'] が数値を返すことを知っています。同じ ajax 呼び出しから別の場所でそれを使用しているためですが、そのデータ配列を含む数学的操作を行うと、数値ではありません????

data['minutes'] が数値を返すことは 100% 確信しています

編集1

すべての JS

setInterval(function(){

     $.ajax({
         type: "POST", // Can be "GET"
         url: "ajax.php",
         data: {
             },
        dataType: "json",
        success: function (data) //on recieve of reply
        {
            $(function () {

                var timeMinutes = data['minutes']; //get comment to post

                var percent = parseInt(data['minutes']) / 30 * 100;


                $('#progressbarr').html("<div class='bar' id='progressbar' style='width: "+ percent +"%;'></div>");
                $('#tid').html(timeMinutes);
            });
        }
    });
}, 3000);

すべての PHP

$ip = $_SERVER['REMOTE_ADDR'];

$query = "SELECT * FROM `login_attempts` WHERE ip = '$ip'";

$result = mysqli_query($con, $query);

while ($row = mysqli_fetch_array($result)) {
    $banned = $row['date'];
}

$start_date = new DateTime($today);
$since_start = new DateTime($banned);

$interval = $start_date->diff($since_start);
$minutes = $interval->days * 24 * 60;
$minutes += $interval->h * 60;
$minutes += $interval->i;

$TTL['minutes'] = 30-$minutes;

echo json_encode($TTL);
4

2 に答える 2

0

$()ajaxコールバックを囲んでいて、それを削除すると、すべてが機能するはずです。

jsfiddle の失敗 (コードに基づく): http://jsfiddle.net/potatosalad/fnjMM/1/

作業中の jsfiddle (なし$()): http://jsfiddle.net/potatosalad/fnjMM/2/

于 2013-04-26T19:08:03.003 に答える
0

次のようなものを使用して、最初に数値型に強制してみてください。

var percent = parseInt(data['minutes']) / 30 * 100;
于 2013-04-26T18:30:59.370 に答える