2012-07-18 4 views
0

이 문제에 대한 해결책을 찾기 위해 인터넷을 철저히 조사했습니다.
그래서 csv 파일에서로드하고 csv 파일에 데이터를 통합하는 html 코드를 생성하는 jquery ajax 스크립트가 있습니다. 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 오류가 있습니까? 자바 스크립트 오류? – hvgotcodes

+0

콘솔에 오류가 있습니까 ?? –

+0

콘솔에 오류가 없습니다. jquery 아코디언이 작동하지 않기 때문에 작동하지 않습니다. – jsolomon9

답변

0

내가 여기에 소스를 쳐다 보면서 당신이 두 JQuery와 파일 대신 files/jquery.js 제거 추가하고 페이지 상단에 files/jquery.min.js 이동 안

<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> 

을 추가 한 JS 파일입니다. 이렇게하면 시도해보십시오.

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

방금 ​​시도했지만 작동하지 않았습니다. 변경 사항으로 html을 업데이트했습니다. – jsolomon9

+0

jQuery https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js에 대한 링크를 사용하여 시도해보십시오. 최신 버전이 필요합니다. jQuery – Kishore

+0

감사! 그 플러스 사용 스크립트를 변경. 감사!! – jsolomon9

관련 문제