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,
ich habe ein Problem beim Programmieren der php Codes bei einer Rangordnung und ich hoffe Sie können mir eventuell bei diesem Problem helfen.
Ich habe in einem Fragebogen eine Rangordnung mit sechs Feldern. Für die Ränge 1-3 sollen die Probande spezifische Seiten angezeigt bekommen. Zwischen der Anzeige der Seiten - also der Rangordnung und der antwortspezifischen Fragen - befinden sich noch drei allgemeine Frageseiten, die von allen beantwortet werden sollen. Es soll also so ablaufen, dass die Probanden nach der Rangordnung der sechs Felder noch drei allgemeine Frageseiten bekommen und anschließend nacheinander die Frageseiten, die den Feldern 1-3 der Rangordnung spezifisch zugeordnet werden sollen.
Nun konnte ich bis jezt nur herausfinden, wie ich einem Feld eine spezifische Seite zuordne. Bei allem weiteren, hakt es leider.
Ich würde mich sehr freuen, wenn Sie mir einen Tipp für eine entsprechende Informationsseite bzw. einen Code nennen könnten.
Mit freundlichen Grüßen,
Kevin Michels

in SoSci Survey (dt.) by s087182 (110 points)

1 Answer

0 votes

Zunächst einmal lesen wir die Codes aus der Rangordnung aus und bringen sie in die richtige Reihenfolge:

$items = getItems('RG01', 'all');
$chosen = array(-1, -1, -1);
foreach ($items as $varID) {
  $rank = value($varID);
  if ($rank > 0) {
    $chosen[$rank] = $varID;
  }
}
debug($chosen);

Jetzt sollte der Fragebogen im Debug-Modus (gelber Pfeil) so etwas anzeigen wie

'RG01_02', 'RG01_04', 'RG01_01'

Schritt 2: Wir "übersetzen" das in Seiten-Kennungen. Diese könnten z.B. pg1 bis pg6 sein. Dann würde die Übersetzung wie folgt aussehen:

$pages = array(
  'RG01_01' => 'pg1',
  'RG01_02' => 'pg2',
  'RG01_03' => 'pg3',
  'RG01_04' => 'pg4',
  'RG01_05' => 'pg5',
  'RG01_06' => 'pg6'
);
$pageOrder = array();
foreach ($chosen as $varID) {
  $pageOrder[] = $pages[$varID];
}
debug($pageOrder);

Es wird also für jeden Wert aus der oben erstellten Liste im Array $pages nachgesehen, welche Seite dazu gehört. Und die Seiten-Kennungen werden dann in die Varibale $pageOrder geschrieben. Dort sollte nun also z.B. stehen:

'pg2', 'pg4', 'pg1'

Der Rest ist trivial. Erstmal definieren Sie noch die Seite, wo es nachher weitergehen soll - also jene nach pg6, die z.B. die Kennung pgDone haben könnte:

$pageOrder[] = 'pgDone';

Und dann platzieren Sie auf der letzten Seite vor pg1 den Befehl setPageOrder():

setPageOrder($pageOrder);
by SoSci Survey (92.6k points)
...