0
这是我第一次用javascript搞乱ajax,我几乎不会把自己描述为一个web开发人员或web程序员。所以我会给你我所编码的东西,并先试一试,然后描述我的问题以及最后要做的事情。如何在ajax请求上发送javascript?
所以我有一个选择div与一些东西在里面。
<select id="month" onchange="refreshGraph()">
而当选择一个选项这个JavaScript是假设工作。
function refreshGraph()
{
var index = document.getElementById('month').selectedIndex;
var monthOptions = document.getElementById('month').options;
var selectedDays = monthOptions[index].value;
$.ajax({
url:"divisions.php",
type: "POST",
dataType: "script",
data: {days:selectedDays},
success: function(data){
$('#divisions').html(data);}
});
}
我也试着重写成功,函数调用是这样的:
$('#divisions').html('<script src="http://code.highcharts.com/highcharts.js">
<script src="http://code.highcharts.com/modules/exporting.js">'+data+'<\/script<\/script>')
,而不是$。阿贾克斯()我也试过这个
$('#divisions').load("divisions", {days: selectedDays});
这是假设更新一个表与div与ID的ID。
<table>
<tr>
<td>
<div id="divisions" style="min-width: 90%; height: 50%; margin: 0 auto"></div>
</td>
</tr>
</table>
现在divisions.php的是,有一些数据库调用并写入纯文本的含义一个javascript highchart没有PHP或脚本或其他任何类似的周围的纯文本JavaScript代码是highchart文件。所以我所有的PHP之后是这样开始的
$(document).ready(function() {
$('#divisions').highcharts({
chart: {
这里是我的源文件,我包括index_new.php头:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<script src="divisions.php"></script>
那么我想干什么?我试图在下拉列表中选择某人的情况下更新图表。下拉列表中的值是传递给divisions.php
的附加sql参数。 divisions.php
然后在其调用中使用这个额外的sql参数,这会影响表的外观。
第一次加载index_new.php
highchart得到加载,一切都很好。我面临的问题是,当我选择下拉列表中的任何选项时,图表更新但是不显示高图,它显示了当首次调用index_new.php时,以前解释为实际javascript的纯文本javascript(请参见下文) 。所以ajax调用正在工作,我正确地抓住变量,但我猜这是我在我的头,这不是造型它的JavaScript?我不知道为什么这不起作用。
取而代之的是highchart我得到这个更新的时候(是的,我做了与NAME1代替实际的名称,名称2,...等):
$(document).ready(function() { $('#divisions').highcharts({ chart: { type: 'column' }, title: { text: 'Total Sales By Salesperson' }, xAxis: { title: { text: 'Salesperson'}, categories: ['name1', 'name2', 'name3', 'name4', 'name5', 'name6', 'name7', ] }, yAxis: { min: 0, title: { text: 'Total Sales' } }, tooltip: { formatter: function() { return ''+ this.x +'
'+ this.series.name +': '+ this.y +'
'+ 'Total: '+ this.point.stackTotal; } }, legend: { backgroundColor: '#FFFFFF', reversed: true }, plotOptions: { }, series:[ {name: 'Business Equipment' , data: [0, 400, 80000, 68496, 15800, 170000, 155200, ]},{name: 'Corporate Printing' , data: [0, 0, 0, 6600, 0, 0, 0, ]},{name: 'Document Storage' , data: [0, 0, 0, 0, 0, 18000, 0, ]},{name: 'IT Services' , data: [10000, 0, 0, 4500, 0, 0, 2000, ]},]});})
你不加载从谷歌jQuery的API,因为你的'src'不包含'http'或'https'。所以,它应该是这样的: '' – sulavvr
如果页面会有高点图,为什么不简单在常规DOM中包含'