gpt4 book ai didi

javascript - 在 JQuery UI 对话框中包含 google 可视化时间线失败

转载 作者:行者123 更新时间:2023-11-28 06:28:09 25 4
gpt4 key购买 nike

dialog.php 其中包括 jquery ui 选项卡

<div id="tab2">
<iframe width="100%" height="80%" src='timeline.php'/>
</div>

时间线.php

$timeline = getData($_dbo, 'somefilter1', 'otherfilter1'); // getData selects data from a DB 

?>
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["timeline"]});
google.setOnLoadCallback(drawChart);

function drawChart() {
var container = document.getElementById('timeline');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();

dataTable.addColumn({ type: 'string', id: 'State' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });

dataTable.addRows([
<?
$c = 0; $state = array();
foreach($timeline as $row)
{
if(count($state) == 0)
{
$state['s'] = $row['CurrentStatus'];
$state['r'] = $row['Rank'];
$state['start'] = "new Date(".$row['HYear'].", ".$row['HMonth'].", ".$row['HDay'].")";
}

if($row['CurrentStatus'] != $state['s'] || $timeline[$c]['ClosedDate'] != '')
{
$date = "new Date(".$row['HYear'].", ".$row['HMonth'].", ".$row['HDay'].")";
$currentstate = $state['r'].' '.$state['s'];
?>
[ '<?= $currentstate ?>', <?= $state['start'] ?>, <?= $date ?> ]<?
if ($c < count($timeline) && $timeline[$c]['ClosedDate'] == '' ) echo ",\r\n";

$state['s'] = $row['CurrentStatus'];
$state['r'] = $row['Rank'];
$state['start'] = "new Date(".$row['HYear'].", ".$row['HMonth'].", ".$row['HDay'].")";
}

if($timeline[$c]['ClosedDate'] != '') break;
$c++;
}
?>
]);


chart.draw(dataTable);
}
</script>
</head>
<body>
<div id="timeline" style="height: 180px; width:100%;"></div>
</body>
</html>

我现在的问题是,我的图表无法正确显示,并且左侧被切断。有时我会收到错误:“无法获取未定义或空引用的属性“日志””(我可以通过随机关闭并重新打开对话框和切换选项卡来重现该错误)。

mytimeline您能否帮助我找到我的问题或提供如何在模态对话框中正确包含 Google 可视化图表的解决方案?

编辑:时间线按预期工作,但不将其包含在对话框中。当我在浏览器中打开“timeline.php”时,一切看起来都很好。仅在与对话框或选项卡或两者结合使用时出现问题?!

最佳答案

我设法找到了解决方案。所以我想我要回答我自己的问题。我将选项卡内容更改为不包含 iframe,而是包含常规 div,如下所示:

<div id="tab2"><div id="timelinediv"></div></div>

并且我在同一页面上使用了 JavaScript,因此我不必从其他页面包含它。也许不是最好的可读解决方案,但它对我有用。

关于javascript - 在 JQuery UI 对话框中包含 google 可视化时间线失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34944641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com