我需要每5秒运行一次功能find_optimal_schedule()
,同时每次更新DIV容器schedule
。以下是我的代码段。问题是执行了alert("Init")
,而没有执行alert("True")
或alert("False")
。 FireBug显示optimize.php
每5秒运行一次,但是我不明白为什么DIV容器的内容始终保持空白。
附言代码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));
?>
最佳答案
我相信您的output.msg应该与==
而不是===
进行比较。
if(output.msg == 1){
alert("True");
$('#schedule').html(output.html);
} else {
alert("False");
return false;
}
通过nnnnn,看来
===
对于javascript中的比较是有效的;因此,我唯一能想到的是output.msg是未定义的。由于===
不会导致javascript错误,因此output.msg是唯一可能的其他事情。