0 votes
in SoSci Survey (dt.) by s196976 (145 points)
closed by SoSci Survey

Hallo liebe Sosci-Community.

Ich habe für unsere Masterarbeit eine kleine Tabelle erstellt und allerlei technischen Krams dazugepackt.
Jetzt hackts aber an einer Stelle: Ich habe einen Randomizer, der die Zeilen meine Tabelle für jede Testperson neu randomisiert. Um aber später in den Daten nachvollziehen zu können, wie die Tabelle bei den eizelnen Personen aussah, wollte ich eine interne Variable in Sosci-Survey, die als String die Reihenfolge der Anfangszellen meiner Tabelle angibt, sobald sie randomisiert wurde.

Hier der code meines Randomizers. Das Interessante Codestück ist dick markiert. Hier versuche ich der Internen Variable den String zu übergeben. Ist das so richtig, oder mach ich da irgendwas falsch? Ich weiß zumindest dass der String richtig generiert wird. Den habe ich zu Testzwecken per alert ausgeben lassen. Also muss das Problem bei der Übergabe der variable liegen. Danke schonmal für Tipps.

      <script>

function randomizeTable() {
  //Randomizer für die Zeilen der Tabelle

  var table = document.getElementById("myTable");
  var rows = table.rows;
  var randomOrder = [];
  
  for (var i = 1; i < rows.length - 1; i++) {
    var currentRow = [];
    for (var j = 0; j < rows[i].cells.length; j++) {
      currentRow.push(rows[i].cells[j].innerHTML);
    }
    randomOrder.push(currentRow);
  }

  randomOrder = shuffleArray(randomOrder);
  
  for (var i = 1; i < rows.length - 1; i++) {
    for (var j = 0; j < rows[i].cells.length; j++) {
      rows[i].cells[j].innerHTML = randomOrder[i-1][j];
    }
  }

**var randomOrder = [];
  for (var i = 1; i < rows.length - 1; i++) {
  randomOrder.push(rows[i].cells[0].innerHTML);
}
var randomOrderString = randomOrder.join(", ");
var internvar = document.getElementById("XX01_01");
internvar.value = randomOrderString;**

  function shuffleArray(array) {
    for (var i = array.length - 1; i > 0; i--) {
      var j = Math.floor(Math.random() * (i + 1));
      var temp = array[i];
      array[i] = array[j];
      array[j] = temp;
    }
    return array;
  }
}


//Ausführen der Randomisierung
randomizeTable();
</script>
closed with the note: Problem wahrscheinlich gelöst, s. Kommentare
by SoSci Survey (306k points)
Wir sprechen über diese Zeilen hier, korrekt?

var internvar = document.getElementById("XX01_01");
internvar.value = randomOrderString;

(1) Was sagt denn die Fehlerkonsole im Browser

(2) Haben Sie XX01 oberhalb des Scripts in den Fragebogen gezogen?
by s196976 (145 points)
Genau die Zeilen genau :)
Debug spuckt nicht aus aber nein, ich habe die Frage nicht in das Script eingezogen. Ich dachte die Variable selbst exisitert schon innerhalb soscisurvey und ich kann sie einfach referenzieren. Aber da habe ich die interne Struktur wohl falsch verstanden. Ich habe jetzt die Frage oberhalb meiner Tabelle auf die Seite gezogen. Ich denke das sollte das Problem lösen. Danke :)

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...