2016-07-27 5 views
1

많은 JavaScript를 사용하는 Qualtrics에서 실시한 설문 조사의 코딩을 마무리하고 있습니다. 안타깝게도 설문 조사에서 가장 중요한 질문 인 경우 질문이 설문 조사의 첫 번째 위치에 있지 않을 때 JavaScript가 작동하지 않습니다 [편집 :로드되지 않습니다]. 그러나이 질문에 표시된 그래프가 이전 답변에 의존하기 때문에 이전에 다른 질문을해야합니다.JavaScript가 Qualtrics에서 항상 작동하지 않는 경우

질문이 설문 조사의 첫 번째 위치에있을 때 코드 작업 here을 보는 것은 매우 실망 스럽습니다 (파란색 막대가있는 5 개의 그래프가 표시 될 수 있습니다. 초); 그러나 그래프는 더 이상 표시되지 않습니다. there, 질문을 두 번째 위치에 놓으면 (그래프가 없으므로 첫 번째 질문에 답을하고 다음에 버튼을 클릭해야합니다).

참고로 저는 jQuery와 플로팅 라이브러리 jChartFX를 사용합니다.

이 문제를 일으킬 수있는 사람은 누구입니까?

[편집] : 여기에 내 JavaScript 코드 (라이브러리를로드하는 헤더 제외)가 있습니다. HTML의 헤더에 포함되어야합니다 :

Qualtrics.SurveyEngine.addOnload(function() 
{ 
     $j(document).ready(function($j){  

      $j.ajax({ 
       url:'https://login.qualtrics.com/WRQualtricsControlPanel/File.php?F=F_6yFft59YgdvIHfT', 
       success: function(data){ 
        var actuelle, rawlsien, utilitarien; 
        var donnees_rawlsien, donnees_actuelle, donnees_utilitarien; 
        var prefere, egalitaire, actuelle, rawlsien, utilitarien; 
        var donnees_prefere, donnees_egalitaire; //, donnees_rawlsien, donnees_actuelle, donnees_utilitarien; 
        var donnees = {"utilitarien":donnees_utilitarien,"rawlsien":donnees_rawlsien,"egalitaire":donnees_egalitaire,"actuelle":donnees_actuelle,"prefere":donnees_prefere}; 
        prefere = new cfx.Chart(); 
        actuelle = new cfx.Chart(); 
        egalitaire = new cfx.Chart(); 
        rawlsien = new cfx.Chart(); 
        utilitarien = new cfx.Chart(); 
        donnees_egalitaire = new Array(2); 
        donnees_egalitaire[0] = {x: 0, y: 1800} 
        donnees_egalitaire[1] = {x: 1, y: 1800} 
        donnees_prefere = new Array(2); 
        donnees_prefere[0] = {x: 0, y: 1800} 
        donnees_prefere[1] = {x: 1, y: 1800} 
        var out = charge(data);   
        donnees_actuelle = out[0]; 
        donnees_utilitarien = out[1]; 
        donnees_rawlsien = out[2]; 
        draw(utilitarien,"utilitarien", donnees_utilitarien); 
        draw(rawlsien,"rawlsien", donnees_rawlsien); 
        draw(actuelle,"actuelle", donnees_actuelle); 
        draw(egalitaire,"egalitaire", donnees_egalitaire); 
        draw(prefere,"prefere", donnees_prefere); 
       }, 
       error: function(){ 
        alert('Fail of data loading: utilitarien'); 
        donnees_utilitarien = new Array(2); 
        donnees_utilitarien[0] = {x: 0, y: 1800} 
        donnees_utilitarien[1] = {x: 1, revenu: 1800} 
       } 
      }); 

      function charge(texte) { 
       var dat=texte; 
       var tab=dat.split('\n'); 
       var donnees_actuelle = new Array(100); 
       var donnees_utilitarien = new Array(100); 
       var donnees_rawlsien = new Array(100); 
       for (var i = 0; i<10; i++) { 
        donnees_actuelle[i] = {x:i, y:parseInt(tab[0].split('\t')[0])} 
        donnees_utilitarien[i] = {x:i, y:parseInt(tab[0].split('\t')[1])} 
        donnees_rawlsien[i] = {x:i, y:parseInt(tab[0].split('\t')[2])} 
       } (...) 
        donnees_actuelle[99] = {x:i, y:parseInt(tab[7].split('\t')[0])} 
        donnees_utilitarien[99] = {x:i, y:parseInt(tab[7].split('\t')[1])} 
        donnees_rawlsien[99] = {x:i, y:parseInt(tab[7].split('\t')[2])} 
        var out = new Array(3); 
        out[0] = donnees_actuelle; 
        out[1] = donnees_utilitarien; 
        out[2] = donnees_rawlsien; 
        return out; 
      } 

      function draw(graph, name, donnees) { 
       graph.setGallery(cfx.Gallery.Bar); 

       graph.getAllSeries().setVolume(100); 
       var axeY = new cfx.FieldMap(); 
       axeY.setName("y"); 
       axeY.setUsage(cfx.FieldUsage.Value); 
       graph.getDataSourceSettings().getFields().add(axeY); 
       graph.setDataSource(donnees);   
       graph.getAxisY().setMax(12000); 
       graph.getAxisX().setVisible(false); 
       graph.getAxisY().setStep(1000); 
       graph.setBackColor('#00FFFFFF'); 
       var titreX, titreY; 
       titreY = new cfx.TitleDockable();    
       titreY.setText("niveau de vie (€/mois)"); 
       titreY.setTextColor("#57ACDA"); 
       graph.getAxisY().setTitle(titreY); 
       graph.getLegendBox().setDock(cfx.DockArea.Top); 
       graph.getSeries().getItem(0).setText("Niveau de vie des français (en €/mois)"); 
       graph.getSeries().getItem(0).setColor("#FF0000"); 
       graph.getLegendBox().setTextColor("#FF0000"); 
       graph.getLegendBox().setMarginX(250); 


       var divHolder = document.getElementById(name); 
       graph.create(divHolder); 
      } 
    });   

}); 
+0

각 장소에서 생성하는 데 사용하는 코드를 게시 할 수 있습니까? 동일하거나 유사합니까? –

+0

빠른 검색을 기반으로 작동하지 않는 링크에 포함 된 스크립트가 표시되지 않는다고 말할 수 있습니다. –

+0

와우, Qualtrics에서 작동하지 않는 설문 조사에 가서 코드를 복사/붙여 넣으려고했습니다 (거기에있었습니다), 다시 시도했지만 ... 괜찮 았습니다. 나는 방금 두 번째 시도를 재시도했습니다 ... 그리고 더 이상 작동하지 않습니다 XD 당신에게 코드를 제공하기 위해 제 질문을 편집했습니다. – bixiou

답변

0

이제는 Qualtrics 지원을 통해 잘 작동합니다. 그러나 나는 그 문제의 원인을 이해하지 못했습니다. 설문 조사가 배포 되었기 때문에 지금은 효과가있는 것 같습니다. 버그는 미리보기 모드에서만 나타납니다.