2016-07-27 24 views
1

多くのJavaScriptを使用するQualtricsの調査のコードを完成させています。残念ながら、アンケートの最も重要な質問については、質問が調査の最初の位置にない場合、JavaScriptは機能しません[EDIT:読み込みません]。しかし、私はこの質問に表示されるグラフが以前の答えに依存するので、他の質問を先に行う必要があります。JavaScriptが常にQualtricsで機能するとは限りません

質問が調査の最初の位置にあるときは、コード作業hereを見るのは非常にイライラしています(データがロードされるまでには時間がかかっても5つのグラフが青色で表示されます。秒)。しかし、グラフが表示されなくなったのはthereなので、2番目の位置に質問を置くと(グラフがないので、最初の質問に答えて、次にボタンをクリックする必要があります)。

参考までに、jQueryとプロット用ライブラリjChartFXを使用します。

これを引き起こす可能性のある人は誰ですか?

[編集]:ここに私のJavaScriptコード(ライブラリをロードするヘッダを除く)があります。

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のサポートのおかげで、うまく動作します。しかし、私はこの問題の原因を理解していません。調査は配布されているので、今はうまくいくようです。このバグはプレビューモードでのみ発生していました。

関連する問題