我尝试验证我的网页,但有一个错误需要修复。
我在我的代码中使用Google图表。要填充图表,我需要在下面的代码中显示的JavaScript中填写数据。
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([ <?php echo $data; ?> ]);
var data2 = google.visualization.arrayToDataTable([ <?php echo $datagoing; ?> ]);
var options = {
backgroundColor: 'transparent',
legend: 'none',
height: '100px',
width: '100px',
chartArea: { height :"95%", width:"95%" },
};
var options2 = {
backgroundColor: 'transparent',
legend: 'none',
height: '100px',
width: '100px',
chartArea: { height :"95%", width:"95%" },
};
var chart = new google.visualization.PieChart(document.getElementById('piechart<?php echo $loop ?>'));
chart.draw(data, options);
var chart2 = new google.visualization.PieChart(document.getElementById('piechartgoing<?php echo $loop ?>'));
chart2.draw(data2, options2);
}
</script>
这是在一个循环中,所以通过查看我的页面来源http://mr-tipster.com/pages/newcard.php?venue=Warwick&time=3:05
可以看到多次生成代码我的问题是如何在保持页面html验证的同时执行此操作:http://validator.w3.org/check?uri=http%3A%2F%2Fmr-tipster.com%2Fpages%2Fnewcard.php%3Fvenue%3DWarwick%26time%3D2%3A30&charset=%28detect+automatically%29&doctype=Inline&group=0
答案 0 :(得分:2)
问题是您将脚本直接放在tr
标签和that is not valid内的<table>
之间。你现在拥有什么:
<table>
<tr>
<td>...</td>
...
</tr>
<script type="text/javascript">...</script>
...
</table>
要快速解决问题,请将脚本移到行的最后<td>
内(<script>
为flow element allowed in the table cell)。效果将是相同的,它将毫无问题地验证。像这样:
<table>
<tr>
<td>...</td>
...
<td>
...
<script type="text/javascript">...</script>
</td>
</tr>
...
</table>
但如果你想以更清洁,更优雅的方式解决问题,你应该像Rory在评论中所建议的那样:创建一个函数,简单地调用它来改变参数,而不是拥有几乎相同代码的巨大块