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

0 votes

Hallo miteinander,

am Anfang des öffentlichen Teils habe ich in den Fragebogen einen Zufallsgenerator ("A001") eingebaut um die Reihenfolge der Seiten je nach zugewiesener Experimentalgruppe zu ändern. Das funktioniert alles soweit genauso, wie es soll.

Jedoch habe ich eine Javascript App in den Fragebogen implementiert, deren Inhalte je nach zugewiesener Experimentalgruppe angepasst werden müssten. Nichts einfacher als das, habe ich gedacht...

Um die grundlegende Funktionsweise zu überprüfen habe ich folgenden Code angelegt:

HTML Code:

<h1>A Anfang</h1>
<h3 id="gruppeninfo">-</h3>
  <script type="text/javascript">
    window.onload = function(){
        document.getElementById("gruppeninfo").innerHTML = "X";
        alert("X");
    }
  </script>

PHP Code:

$code = value('A001');
$html = '<h3>PHP Gruppeninfo: '.$code.'</h3>';
html($html);

Ergebnis: Javascript > innerHTML wird aktualisiert, Alert wird ausgegeben. PHP > korrekter Wert von Zufallsgenerator A001 wird ausgegeben.

Jetzt wird's tricky... alle Versuche den Wert des Zufallsgenerators an Javascript zu übergeben scheitern. Ich habe probiert:

1. PHP Replace

PHP Code: replace('%code%', 'A001', 'response')
JAVASCRIPT Code: var code = %code%;

Dabei war es egal ob ich den PHP Code und JAVASCRIPT Code zusammen im HTML Fenster eingebunden oder den PHP Code im PHP Fenster und den JAVASCRIPT Code im HTML Fenster eingebunden habe. Hat nicht funktioniert.

2. JAVASCRIPT document.getElementById("A001").value

<h1>A Anfang</h1>
<h3 id="gruppeninfo">-</h3>
<script type="text/javascript">
    window.onload = function(){
		var code = document.getElementById("A001").value; 
		document.getElementById("gruppeninfo").innerHTML = code;
		alert(code);
    }
</script>

3. Übergabe JAVASCRIPT Variable an PHP mit json_encode

PHP Code:

$code = value('A001');

HTML Code:

<script type="text/javascript">
        window.onload = function(){
var code = <?php echo json_encode($code); ?>;
...
}
</script>

Auch die reine Übergabe mit "echo $code" oder andere Varianten (z.B. mit INT) haben kein verwertbares Resultat gebracht.

Um meine Javascript App passend zur Randomisierung steuern zu können muss ich unbedingt in Javascript auf den Wert des Zufallsgenerators ('A001') zugreifen können. Habt Ihr noch ein paar Tipps für mich?

Beste Grüße
Jürgen

in SoSci Survey (dt.) by s048817 (130 points)

1 Answer

0 votes

Noch ein Lösungsansatz, dieser funktioniert anscheinend...

PHP Code:

html('
  <script type="text/javascript">
  var code = '.json_encode(value('A001')).';
  </script>
');

HTML Code:

<h1>A Anfang</h1>
<h3 id="gruppeninfo">-</h3>
<script type="text/javascript">
    window.onload = function(){
		document.getElementById("gruppeninfo").innerHTML = 'JS Gruppeninfo: ' + code;
		alert(code);
    }
</script>

Damit wird sowohl das innerHTML als auch der Alert mit dem Wert des Zufallsgenerators erzeugt. Warum ich diesen Umweg über PHP gehen muss, erschließt sich mir nicht wirklich...

Für andere Wege wäre ich dankbar, bei einer geringen Anzahl an zu übergebenden Variablen ist das sicher noch machbar, werden es mehr, wird es aber ziemlich unübersichtlich.

Beste Grüße
Jürgen

by s048817 (130 points)
...