2012-07-18 108 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

相關問題