1

find_optimal_schedule()DIV コンテナーを更新するたびに、5 秒ごとに関数を実行する必要がありますschedule。以下は私のコードスニペットです。問題は、alert("Init")実行中、alert("True")または実行alert("False")されていないことです。FireBug はoptimize.php5 秒ごとに実行されることを示していますが、DIV コンテナーの内容が常に空白のままである理由がわかりません。

PSgantt.phpタイマーなしでDIVコンテナでテストしたところ、ガントチャートが正しく表示されたため、コードは正常に動作しました。したがって、そうではないため、ここではこのコードを提供しません。

scheduler.php

<script>
window.setInterval(function(){                 
     find_optimal_schedule();
}, 5000);
</script>

<script>
function find_optimal_schedule() {
    $.ajax({
        url: 'modules/mod_scheduler/pages.php?page=optimize.php',
        dataType: 'json',
        success: function(output){
            alert("Init");
            if(output.msg === 1){
                alert("True");
                $('#schedule').html(output.html);
            } else {
                alert("False");
                return false;
            }
        }
    });
}
</script>

<div style="width:100%; height:350px; position:relative" id="schedule" class="schedule"></div>

pages.php

<?php
    @session_start();

    @$pag_mod = $_GET['pag_mod'];

    if(!isset($pag_mod))
        $pag_mod = 0;

    if (isset($_GET['pag_mod'])) {
        include 'modules/mod_scheduler/'.$_GET['pag_mod'];
    }
    else {
        include 'modules/mod_scheduler/scheduler.php';
    }
?>

最適化.php

<?php
//  Dispay Gantt chart
$html_code = '<img src="modules/mod_scheduler/gantt.php">';

echo json_encode(array('msg' => 1, 'html' => $html_code)); 
?>
4

3 に答える 3

3

output.msg は==ではなくと比較する必要があると思います===

if(output.msg == 1){
    alert("True");
    $('#schedule').html(output.html);
} else {
    alert("False");
    return false;
}

nnnnn を介して===、javascript での比較に有効なようです。したがって、私が考えることができる唯一のことは、output.msg が定義されていないということです。javascript エラーの原因ではないため===、他に考えられるのは output.msg だけです。

于 2012-08-12T11:55:41.820 に答える
2

equalityの代わりに厳密な等値演算子 (===)を使用しています。

これは、値に加えてデータ型も等しいと見なされる場合、比較が真であることを意味します。おそらくoutput.msg文字列として来て、数値と同等ではありません。代わりに == を試してください。

于 2012-08-12T11:59:17.630 に答える
1

試す

console.log(output)

出力が有効なオブジェクトかどうかを確認します。Firebug は、オブジェクト全体とそのすべてのプロパティを表示する必要があります。

于 2012-08-12T12:03:24.487 に答える