2012-07-18 73 views
0

我已经详尽地通过互联网了解了这个问题的解决方案。
所以我有一个jquery ajax脚本,加载在一个csv文件中,并生成一些合并csv文件中的数据的html代码。在本地机器上工作但在服务器上工作的JQuery Ajax脚本

<script type="text/javascript"> 
    $(document).ready(function() { 
    $.ajax({ 

     type: "GET", 
     url: "database.csv", 
     dataType: "html", 
     data: {}, 
     success: function(text) { 
      // Location of key information 
      var nameLoc; 
      var siteLoc; 
      var typeLoc; 
      var categoryLoc; 
      var descripLoc; 
      var canRequestLoc; 
      var EClassLoc; 
      var description=''; 
      var temp = "Y"; 
      var charTemp; 
      var site; 
      var len; 
      var fields = text.split(/\n/); 
      fields.pop(fields.length-1); 

      var headers = fields[0].split(','), html = '<table align="center" id="searchData">'; 

      for(var i = 0; i < headers.length; i += 1) { 
       switch (headers[i]){ 
       case 'Name': 
        nameLoc = i; 
       break; 
       case 'RequestSystem': 
        siteLoc = i; 
       break; 
       case 'Type': 
        typeLoc = i; 
       break; 
       case 'Category': 
        categoryLoc = i; 
       break; 
       case 'canRequest': 
        canRequestLoc = i; 
       break; 
       case 'ECAPSClassification': 
        EClassLoc = i; 
       break; 
       case 'Description': 
        descripLoc = i; 
       break; 
       }; 
      } 
      descripLoc = canRequestLoc + 2; 

      var data = fields.slice(1, fields.length); 

      for(var j = 0; j < data.length; j += 1) { 

       var dataFields = data[j].split(','); 
       if (dataFields[nameLoc]==0){ 
       html += '</table>'; 
       $(html).appendTo('body'); 
       break; 
       }; 

       html += '<tr>'; 
       html += '<td class="demo-show"> <h3>' + dataFields[nameLoc] + '</h3>'; 
       html += '<div class="menuBar"> '; 

       charTemp = dataFields[canRequestLoc]; 
       if (charTemp=='Y'){ 
       switch (dataFields[siteLoc]){ 
        case 'Service Now': 
         site = 'https://ccsn.service-now.com/'; 
         break; 
        case 'CCR IdM': 
         site = 'http://idm.na.cokecce.com'; 
         break; 
        case 'ECAPS': 
         site = 'https://ecaps.cokeccr.com/ecaps'; 
         break; 
        case 'KO IdM': 
         site = 'https://apps.ko.com/idm'; 
         break; 
        default: 
         site = 'default'; 
         break; 
       }; 
       html += '<a href="' + site + '">' + 'Request Access' + '</a><br>'; 
       } 
       else{ 
       html += '<br><b> ' + dataFields[canRequestLoc+1] + '</b> <br> <br>'; 
       }; 
       html += '<b>Request System: </b>' + dataFields[siteLoc] + '<br>'; 
       if (dataFields[siteLoc]=='ECAPS'){ 
       html += '<b>ECAPS Classification: </b>' + dataFields[EClassLoc] + '<br>'; 
       }; 
       html += '<b>Type: </b>' + dataFields[typeLoc] + '<br>'; 
       html += '<b>Category: </b>' + dataFields[categoryLoc] + '<br>'; 

       html += '<b>Description: </b> ' ; 

       for (var k=descripLoc; k<dataFields.length; k+=1){ 
       html += dataFields[k]; 
       } 

       html += '<br><br></div>'; 
       html += '</td> </tr>'; 

      } 
      html += '</table>'; 
      $('.app').append(html); 
     }   
    }); 
}); 
</script> 

所以脚本加载完美的所有信息,但部分

html += '<td class="demo-show"> <h3>' + dataFields[nameLoc] + '</h3>'; 

类=“演示秀”应该是这个链接到另一个脚本,它使下面隐藏的信息。就像手风琴一样。

的脚本是(在文件不同部分):

$(document).ready(function() { 
    $('td.demo-show > div').hide(); 
    $('td.demo-show > h3').click(function() { 
     $(this).next().slideToggle('fast'); 
    }); 
}); 

在我的本地机器的所有的这个作品,但是当我把它放在服务器上的手风琴脚本不工作,这是怪异因为在网站的另一部分使用完全相同的脚本,并且它可以工作。

只有由JQuery Ajax部分加载的部分不起作用。

我试过了一切!这是我第一次在论坛上发帖。 请看一看,让我知道你的想法。

更新: 这里是网站。请在IE中试试 http://jsolomon9.99k.org/

不工作的部分是,当你点击“标题1”时,下面的信息也应该做手风琴效果。相反,它只是静态的。

+1

它怎么不起作用?服务器是否收到请求?有没有http错误?一个javascript错误? – hvgotcodes 2012-07-18 19:19:13

+0

控制台中的任何错误? – 2012-07-18 19:19:52

+0

控制台中没有错误。我知道它不工作,因为jquery手风琴不工作 – jsolomon9 2012-07-18 19:48:26

回答

0

我看着你的来源,你在这里添加

<script src="files/jquery.js" type="text/javascript"></script> 
<script src="files/more-show.js" type="text/javascript"></script> 
<script type="text/javascript" src="files/jquery.min.js"></script> 

你不应该增加两个jQuery的文件,而不是摆脱files/jquery.js和移动files/jquery.min.js到你的页面的顶部的js文件。像这样,然后尝试

<script type="text/javascript" src="files/jquery.min.js"></script> 
<script src="files/more-show.js" type="text/javascript"></script> 
+0

我刚试过,没有用。我更新了HTML的更改 – jsolomon9 2012-07-18 20:28:44

+0

尝试使用此链接为您的jQuery https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js您正在使用On并且您需要最新版本的jQuery – Kishore 2012-07-18 20:38:15

+0

谢谢!加上改变脚本使用.on帮助!谢谢!! – jsolomon9 2012-07-19 14:17:57

相关问题