Php DIV容器保持空白
我需要每5秒运行一次函数Php DIV容器保持空白,php,javascript,ajax,json,Php,Javascript,Ajax,Json,我需要每5秒运行一次函数find_optimal_schedule(),同时每次更新DIV容器schedule。下面是我的代码片段。问题是执行了警报(“Init”),而没有执行警报(“True”)或警报(“False”)。FireBug显示,optimize.php每5秒运行一次,但我不明白为什么DIV容器的内容一直保持空白 另外,代码gantt.php工作正常,因为我在没有计时器的DIV容器中测试了它,并且甘特图显示正确。因此,我不在这里提供这段代码,因为事实并非如此 scheduler.ph
find_optimal_schedule()
,同时每次更新DIV容器schedule
。下面是我的代码片段。问题是执行了警报(“Init”)
,而没有执行警报(“True”)
或警报(“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>
<?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
// Dispay Gantt chart
$html_code = '<img src="modules/mod_scheduler/gantt.php">';
echo json_encode(array('msg' => 1, 'html' => $html_code));
?>
setInterval(函数(){
找到最佳计划();
}, 5000);
函数find_optimal_schedule(){
$.ajax({
url:'modules/mod_scheduler/pages.php?page=optimize.php',
数据类型:“json”,
成功:功能(输出){
警报(“初始”);
如果(output.msg==1){
警惕(“真实”);
$('#schedule').html(output.html);
}否则{
警告(“假”);
返回false;
}
}
});
}
pages.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>
<?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
// Dispay Gantt chart
$html_code = '<img src="modules/mod_scheduler/gantt.php">';
echo json_encode(array('msg' => 1, 'html' => $html_code));
?>
optimize.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>
<?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
// 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是唯一可能的其他原因。我认为您应该将output.msg与==
进行比较,而不是与==
进行比较
if(output.msg == 1){
alert("True");
$('#schedule').html(output.html);
} else {
alert("False");
return false;
}
通过nnnnn,似乎
==
对于javascript中的比较是有效的;因此,我唯一能想到的是output.msg是未定义的。由于==
不会导致javascript错误,因此output.msg是唯一可能的其他原因。您使用的是严格相等运算符(==),而不是相等运算符
这意味着,如果除值外,还认为数据类型相等,则比较为真;可能
output.msg
是一个字符串,不等于一个数字。尝试==替换。您使用的是严格相等运算符(==)而不是相等运算符
这意味着,如果除值外,还认为数据类型相等,则比较为真;可能output.msg
是一个字符串,不等于一个数字。试试==相反。试试看
console.log(output)
查看输出是否为有效对象。Firebug应该向您展示整个对象及其所有属性。试试看
console.log(output)
查看输出是否为有效对象。Firebug应该向您显示整个对象及其所有属性。输出.msg的值是多少?这是一个if-else,所以其中一个案例在任何情况下都会被执行,如果它之前没有失败并出现错误的话。其他浏览器也会出现这种情况吗?您调试过JSON吗?你能单独发布生成的JSON吗?@DaDaDom:如果我用alert(output.msg)替换alert(“Init”),那么根本就没有消息。我猜问题出在“pages.php”上,否?如果
output
为空,那么它就不能有任何属性,在计算If条件时会导致JS错误,因此执行会在该点停止。output.msg
的值是多少?这是一个if-else,所以其中一个案例在任何情况下都会被执行,如果它之前没有失败并出现错误的话。其他浏览器也会出现这种情况吗?您调试过JSON吗?你能单独发布生成的JSON吗?@DaDaDom:如果我用alert(output.msg)替换alert(“Init”),那么根本就没有消息。我猜问题出在“pages.php”上,不是吗?如果output
为null,那么它就不能有任何属性,在计算If条件时会导致JS错误,因此执行会在该点停止。我尝试更改为“=”。问题是一样的-我只看到了警报“Init”,就是这样。你是否已登录firefox。我唯一能想到的是output.msg未定义。我试图更改为“==”。问题是一样的-我只看到了警报“Init”,就是这样。你是否已登录firefox。我唯一能想到的是output.msg是未定义的。但即使它的计算结果不相等,是否应该执行else案例并显示相应的警报?谢谢。不幸的是,我试过了,但问题是一样的。这里不是这种情况。@nnnnnn的是正确的,但是你是对的,即使是这种情况,也应该显示“false”,但即使它的计算结果不相等,是否应该执行else情况并显示相应的警报?谢谢。不幸的是,我试过了,但问题是一样的。这里不是这种情况。@nnnnnn的是正确的,但是您是对的,即使是这种情况,也应该显示“false”