我需要每5秒运行一次函数find_optimal_schedule()
,每次更新DIV容器schedule
。以下是我的代码段。问题是alert("Init")
已执行,而alert("True")
或alert("False")
未执行。 FireBug显示optimize.php
每5秒运行一次,但我不明白为什么DIV容器的内容始终保持空白。
P.S。代码gantt.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';
}
?>
optimize.php
<?php
// Dispay Gantt chart
$html_code = '<img src="modules/mod_scheduler/gantt.php">';
echo json_encode(array('msg' => 1, 'html' => $html_code));
?>
答案 0 :(得分: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是唯一可能出现的错误。
答案 1 :(得分:2)
您使用严格相等运算符(===)代替相等。
这意味着除了值之外,如果数据类型被认为是相等的,则比较为真;也许output.msg
以字符串形式出现,并不等同于数字。尝试==代替。
答案 2 :(得分:1)
尝试
console.log(output)
查看输出是否为有效对象。 Firebug应该向你展示整个物体的所有特性。