0 votes
in SoSci Survey (dt.) by s044369 (220 points)
edited by SoSci Survey

Guten Tag,

ich habe einen Fragebogen von soscisurvey.de auf sosci.zdv.uni-mainz.de umgezogen, nun ist aber die Übertragung von Array-Inhalten fehlerhaft. Konkret speichere ich am Anfang des Frabos strings aus einer Zufallsfrage in einen Array, und speichere diesen dann:

Seite 2:

question('WS13'); #male
question('WS14'); #female

replace('%AQ111%', value('WS13x01', 'label')); #GER_accent
replace('%AQ112%', value('WS13x02', 'label')); #GER_accent
replace('%AQ113%', value('WS13x03', 'label')); #UKR_accent
replace('%AQ114%', value('WS13x04', 'label')); #UKR_accent

replace('%AQ115%', value('WS14x01', 'label')); #GER_accent
replace('%AQ116%', value('WS14x02', 'label')); #GER_accent
replace('%AQ117%', value('WS14x03', 'label')); #UKR_accent
replace('%AQ118%', value('WS14x04', 'label')); #UKR_accent


$a   = array('%AQ116%', '%AQ114%', '%AQ113%', '%AQ118%', '%AQ112%', '%AQ117%', '%AQ115%', '%AQ111%'); 
$a1  = array('%AQ111%', '%AQ112%', '%AQ113%', '%AQ117%', '%AQ116%', '%AQ114%', '%AQ115%', '%AQ118%'); 
$a2  = array('%AQ117%', '%AQ113%', '%AQ114%', '%AQ116%', '%AQ118%', '%AQ115%', '%AQ111%', '%AQ112%');  
$a3  = array('%AQ112%', '%AQ117%', '%AQ115%', '%AQ111%', '%AQ113%', '%AQ114%', '%AQ116%', '%AQ118%'); 
$a4  = array('%AQ116%', '%AQ111%', '%AQ112%', '%AQ117%', '%AQ114%', '%AQ113%', '%AQ115%', '%AQ118%');  
$a5  = array('%AQ114%', '%AQ112%', '%AQ115%', '%AQ116%', '%AQ117%', '%AQ113%', '%AQ118%', '%AQ111%');

registerVariable('a');
registerVariable('a1');
registerVariable('a2');
registerVariable('a3');
registerVariable('a4');
registerVariable('a5');

Bisher habe ich dann auf einer späteren Seite den entsprechenden Arrayinhalt abgerufen:

Seite 10:

  $i = loopPage(8);  // 12 Wiederholungen - äquivalent zu loopPage(0,5)

$a = array('%AQ116%', '%AQ114%', '%AQ113%', '%AQ118%', '%AQ112%', '%AQ117%', '%AQ115%', '%AQ111%'); 

array($a[$i]);
array($b[$i]);

put('WQ'.'02'.'_'.sprintf('%02d', $i+1), $a[$i]);
put('WQ'.'03'.'_'.sprintf('%02d', $i+1), $b[$i]);

//html('<p align="center"><font size="5">'.$a[$i]. ' <br><br> 
//<div id="s1"><p align="center">'.$b[$i].'</div></p></font></p>');

html('<p align="center"><img src="'.$a[$i].'" alt="portrait"></p>');

html('
  <audio id="audio_with_controls" preload="auto" autoplay>
  <source src="'.$b[$i].'" " type="audio/mpeg"/>
  </audio>
');

debug('WQ'.'02'.'_'.sprintf('%02d', $i+1), $a[$i]);

Das funktioniert nun nicht mehr - aber es funktioniert wieder, wenn ich auf Seite 10 den ursprünglichen array nochmals angebe:

$a = array('%AQ116%', '%AQ114%', '%AQ113%', '%AQ118%', '%AQ112%', '%AQ117%', '%AQ115%', '%AQ111%'); 

Gibt es hierfür eine Lösung? Für arrays $a-$a5 könnte ich diesen Workaround übernehmen, aber array $b ist sehr viel länger, und der Aufwand wäre höher. Außerdem wirkt das Problem erstmal nicht so schwer lösbar, nur weiß ich nicht wie.

Vielen Dank für die Hilfe und viele Grüße!

1 Answer

+1 vote
by SoSci Survey (341k points)
selected by s044369
 
Best answer

Bitte prüfen Sie links in der Navigation, welche Programmversion die Uni Mainz verwendet. Ein Update auf die aktuelle Version 3.6.00 (erst seit heute verfügbar) sollte das Problem beheben.

by s044369 (220 points)
Vielen Dank! Leider ist das Problem inzwischen immer noch nicht behoben. Als Version wird 3.6.10 angezeigt. Vielen Dank für Ihre Hilfe!
by SoSci Survey (341k points)
Hmm ... mit der aktuellen Version dürfte das Programmverhalten nicht anders sein als auf www.soscisurvey.de. Falls das alte Projekt noch existiert, testen Sie vielleicht nochmal kurz, ob es dort nach wie vor nicht auftritt?

Was haben Sie denn auf Seite 2 ansonsten nach an Inhalt? Ich frage deshalb, weil ein goToPage() oder multiLevelDown() im selben PHP-Code-Block u.U. dazu führen kann, dass eine Variable nicht gespeichert wird, wie man es von registerVariable() eigentlich erwarten würde.

Aber sehen wir uns das Problem doch ein wenig genauer an:

Wenn Sie auf Seite 2 einen weiteren PHP-Code-Block einfügen und dort einfach nur debug($a); eintragen, wird der Inhalt dann angezeigt?

Und was wird angezeigt, wenn Sie diesen PHP-Code-Block auf Seite 2 einfügen?

Verwendet irgendwo auf dem Weg zwischen Seite 2 und Seite 10 eine weitere Seite eine Variable $a und überschreibt damit eventuell den ursprünglichen Inhalt. Der Variablenname ist nicht so speziell, dass man ihn nicht unbewusst an anderer Stelle nutzen könnte.

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

...