2013-10-22 91 views
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, ]},]});}) 
+0

你不加载从谷歌jQuery的API,因为你的'src'不包含'http'或'https'。所以,它应该是这样的: '' – sulavvr

+0

如果页面会有高点图,为什么不简单在常规DOM中包含'