0 votes
in SoSci Survey (dt.) by s088878 (310 points)

Ich habe in meinem Fragebogen 4 Blöcke, deren Abfolge ich mischen will. Dh. nach der Einleitung sollen Blöcke (1-4) in unterschiedlicher Reihenfolge vorkommen, dann soll es auf Seite FQ0 weitergehen. Die jeweilige Reihenfolge, in der ein Teilnehmer die Blöcke sieht, soll bei der Datenerhebung auch abgespeichert werden. Dafür habe ich folgenden Code erstellt:

// Erst einmal die Seitenkennungen als Array speichern
$blocks = array(
  'Cond1' => array('C1in','C1p','C1ready','C1e1','C1d1','C1aem','C1d2','C1lcm','C1aed','C1d3','C1d4','C1e2','C1d5','C1aempd','C1lcd','C1d6','C1aemps','C1d7', 'C1done'),
  'Cond2' => array('C2in','C2p','C2ready','C2e1','C2d1','C2aem','C2d2','C2lcm','C2aed','C2d3','C2d4','C2e2','C2d5','C2aempd','C2lcd','C2d6','C2aemps','C2d7', 'C2done'),
  'Cond3' => array('C3in','C3p','C3ready','C3e1','C3d1','C3aem','C3d2','C3lcm','C3aed','C3d3','C3d4','C3e2','C3d5','C3aempd','C3lcd','C3d6','C3aemps','C3d7', 'C3done'),
  'Cond4' => array('C4in','C4p','C4ready','C4e1','C4d1','C4aem','C4d2','C4lcm','C4aed','C4d3','C4d4','C4e2','C4d5','C4aempd','C4lcd','C4d6','C4aemps','C4d7', 'C4done'));
// Jetzt noch die Reihenfolge der Blöcke zufällig mischen
shuffle($blocks);

for ($i=0; $i<count($blocks); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id = id('ZF05', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id, $blocks[$i][0]);
}

// Jetzt das Ergebnis noch als Seitenabfolge festlegen
// Weiter soll es anschließend mit Seite 'FQ0' gehen
setPageOrder($blocks, 'FQ0');

Ich habe mich mehrmals durch den Fragebogen geklickt um zu sehen ob das klappt. Allerdings wird mir manchmal nur ein Block angezeigt, manchmal nur 3, manchmal dann doch alle 4..., obwohl ich von ganz von Anfang mit dem Durchklicken beginne. Die Variable ZF05 zeigt mir bei 'Daten ansehen' immer eine (gemischte) Abfolge von 4 Blöcken an, auch wenn ganz offensichtlich 1 Block gefehlt hat. Wo kann der Fehler liegen?

1 Answer

0 votes
by SoSci Survey (327k points)

Steht der PHP-Code auf der Seite vor C1in?

Verwenden Sie irgendwo im Fragebogen (innerhalb der 4 Blöcke) goToPage() oder setNextPage() oder loopPage() oder loopToPage()?

Was zeigt die Debug-Information, vgl. Fragebogen-Probleme lösen?

Weshalb geben Sie in den Blöcken (die in sich ja nicht gemischt werden) die einzelnen Seiten an und nicht einfach 'C1in-C1done', 'C2in-C2done', u.s.w.?

by s088878 (310 points)
>Steht der PHP-Code auf der Seite vor C1in?
Ja.
>Verwenden Sie irgendwo im Fragebogen (innerhalb der 4 Blöcke) goToPage() oder setNextPage() oder loopPage() oder loopToPage()?
Ich verwende auf jeder Seite " goToPage('next');", da die Teilnehmer nach Ablauf des countdowns automatisch auf die nächste Seite weitergeleitet werden.

>
Was zeigt die Debug-Information, vgl. Fragebogen-Probleme lösen?
debug($blocks) gibt folgendes an:

Debug information for $blocks:
0[Array], 1[Array], 2[Array], 3[Array]

>Weshalb geben Sie in den Blöcken (die in sich ja nicht gemischt werden) die einzelnen Seiten an und nicht einfach 'C1in-C1done', 'C2in-C2done', u.s.w.?
Die Blöcke werden in sich schon gemischt, und zwar anhand von prototypischen Seitenabfolgen (gezogen aus einer Zufallsvariable). Außerdem rotieren auch noch einige der Seiten innerhalb so einer Abfolge untereinander.
by SoSci Survey (327k points)
> Ich verwende auf jeder Seite " goToPage('next');", da die Teilnehmer nach Ablauf des countdowns automatisch auf die nächste Seite weitergeleitet werden.

Die Funktion goToPage() kommt nur zum Einsatz, wenn der Timer zwischen den Seiten abläuft, bei einem Timer, der über mehrere Seiten läuft. Ansonsten kann das raus. Um die Weiterleitung während der Bearbeitungszeit kümmert sich das SoSciTools.submitPage() im JavaScript-Code.

> Debug information for $blocks:

Würden Sie bitte noch die Debug-Information posten - nicht die Info für $blocks, sondern die komplette (s. Link in der Antwort)? Danke.
by s088878 (310 points)
Gut, ich habe jetzt Zeilen wie
if (time() >= $time0 + $timer) {  goToPage('next'); }
aus den php-Codes auf meinen Fragebogenseiten entfernt (und die Umfrage sprang trotzdem immer noch weiter).

Ich hoffe ich habe das richtig gemacht, die Debug-Information auf der Seite lautet wie folgt:


[Information]    Interview started (new case no. 614)
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Create questionnaire page no. 3
[Content]    Create question ZF06
[Information]    The random generator ZF06 drew these codes: 6, 2, 1, 3
[Information]    Answer to ZF05_01 = C1in
[Information]    The internal variable ZF05_01 gets a value of C1in.
[Information]    Answer to ZF05_02 = C4in
[Information]    The internal variable ZF05_02 gets a value of C4in.
[Information]    Answer to ZF05_03 = C2in
[Information]    The internal variable ZF05_03 gets a value of C2in.
[Information]    Answer to ZF05_04 = C3in
[Information]    The internal variable ZF05_04 gets a value of C3in.
[Information]    According to setPageOrder() the subsequent pages will be shown next:
4 [C1in], 5 [C1p], 6 [C1ready], 7 [C1e1], 8 [C1d1], 9 [C1aed], 10 [C1d2], 12 [C1d3], 13 [C1aem], 11 [C1lcm], 15 [C1e2], 14 [C1d4], 16 [C1d5], 17 [C1aemps], 18 [C1d6], 20 [C1lcd], 21 [C1aempd], 19 [C1d7], 22 [C1done], 61 [C4in], 62 [C4p], 63 [C4ready], 64 [C4e1], 65 [C4d1], 69 [C4aed], 67 [C4d2], 70 [C4d3], 66 [C4aem], 75 [C4lcm], 72 [C4e2], 71 [C4d4], 73 [C4d5], 77 [C4aemps], 76 [C4d6], 68 [C4lcd], 74 [C4aempd], 78 [C4d7], 79 [C4done], 23 [C2in], 24 [C2p], 25 [C2ready], 26 [C2e1], 27 [C2d1], 28 [C2aed], 29 [C2d2], 31 [C2d3], 32 [C2aem], 30 [C2lcm], 34 [C2e2], 33 [C2d4], 35 [C2d5], 36 [C2aemps], 37 [C2d6], 38 [C2lcd], 40 [C2aempd], 39 [C2d7], 41 [C2done], 42 [C3in], 43 [C3p], 44 [C3ready], 45 [C3e1], 46 [C3d1], 47 [C3aed], 48 [C3d2], 50 [C3d3], 51 [C3aem], 49 [C3lcm], 53 [C3e2], 52 [C3d4], 54 [C3d5], 55 [C3aemps], 56 [C3d6], 57 [C3lcd], 59 [C3aempd], 58 [C3d7], 60 [C3done], 80 [FQ0]
debug()    Content: 0[Array], 1[Array], 2[Array], 3[Array]
[Information]    No visible content on this page, continue with page 4
[Processing]    Create questionnaire page no. 4
[Content]    Create question IN01
by SoSci Survey (327k points)
Das sieht gut aus. Demnach sollten alle 4 Blöcke gezeigt werden.

Was jetzt noch erforderlich wäre: Die Debug-Information, wenn der Fragebogen aus der korrekten Abfolge "herausspringt". Am besten auf der Seite vorher (wo es noch stimmt) und der folgenden Seite (wo es nicht mehr stimmt). Damit Sie das mit der vorigen Seite einfach machen können, klicken Sie oben in der Debug-Leiste (!) links der Seitennummer einfach auf den Zurück-Pfeil.
by s088878 (310 points)
Also leider klappt es noch immer nicht. Beim vorherigen Durchgang hat wieder ein Block gefehlt. Leider tue ich mir gerade etwas schwer zu eruieren, wo der Fragebogen aus der Abfolge herausgesprungen ist. Laut "Daten ansehen" hätte die Abfolge wie folgt aussehen sollen: C2, C4, C3, C1. Die debug-Information zeigt mir hier übrigens immer unterschiedliche Abfolgen an, je nachdem ob ich mir gerade eine andere Seite angesehen habe, weil sie hier neu zu laden scheint... Kann es sein dass ich da etwas mit der put() Funktion vermasselt habe?
Beim Durchcklicken habe ich auf jeden Fall folgende Abfolge gesehen: C2, C3, C4. C1 hat komplett gefehlt. Ich gebe zur Sicherheit jetzt die debug Information für die Seite auf dem die Blocks gemischt werden, und die erste u. letzte Seite jedes Blocks.
Seite vor dem ersten Block den man zu sehen bekommt:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 79
[Information]    The retention period on page 79 has been additional 17 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 3
[Content]    Create question ZF06
[Information]    The random generator ZF06 was run earlier in the interview. The codes, already drawn, are preserved: 3, 5, 2, 1
[Information]    Answer to ZF05_01 = C2in
[Information]    The internal variable ZF05_01 gets a value of C2in.
[Information]    Answer to ZF05_02 = C4in
[Information]    The internal variable ZF05_02 gets a value of C4in.
[Information]    Answer to ZF05_03 = C1in
[Information]    The internal variable ZF05_03 gets a value of C1in.
[Information]    Answer to ZF05_04 = C3in
[Information]    The internal variable ZF05_04 gets a value of C3in.
[Information]    According to setPageOrder() the subsequent pages will be shown next:
23 [C2in], 24 [C2p], 25 [C2ready], 26 [C2e1], 27 [C2d1], 28 [C2aed], 29 [C2d2], 31 [C2d3], 32 [C2aem], 30 [C2lcm], 34 [C2e2], 33 [C2d4], 35 [C2d5], 36 [C2aemps], 37 [C2d6], 38 [C2lcd], 40 [C2aempd], 39 [C2d7], 41 [C2done], 61 [C4in], 62 [C4p], 63 [C4ready], 64 [C4e1], 65 [C4d1], 69 [C4aed], 67 [C4d2], 70 [C4d3], 66 [C4aem], 75 [C4lcm], 72 [C4e2], 71 [C4d4], 73 [C4d5], 77 [C4aemps], 76 [C4d6], 68 [C4lcd], 74 [C4aempd], 78 [C4d7], 79 [C4done], 4 [C1in], 5 [C1p], 6 [C1ready], 7 [C1e1], 8 [C1d1], 9 [C1aed], 10 [C1d2], 12 [C1d3], 13 [C1aem], 11 [C1lcm], 15 [C1e2], 14 [C1d4], 16 [C1d5], 17 [C1aemps], 18 [C1d6], 20 [C1lcd], 21 [C1aempd], 19 [C1d7], 22 [C1done], 42 [C3in], 43 [C3p], 44 [C3ready], 45 [C3e1], 46 [C3d1], 47 [C3aed], 48 [C3d2], 50 [C3d3], 51 [C3aem], 49 [C3lcm], 53 [C3e2], 52 [C3d4], 54 [C3d5], 55 [C3aemps], 56 [C3d6], 57 [C3lcd], 59 [C3aempd], 58 [C3d7], 60 [C3done], 80 [FQ0]
debug()    Content: 0[Array], 1[Array], 2[Array], 3[Array]
[Information]    No visible content on this page, continue with page 23
[Processing]    Create questionnaire page no. 23
[Content]    Create question IN02
[Information]    The following placeholders have been prepared:
%remain% = (text) -1379

C2 erste Seite:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 22
[Information]    Retention period on page 22 has been 63 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 23
[Content]    Create question IN02
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

C2 letzte Seite:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 3+23
[Information]    The retention period on page 23 has been additional 208 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 41
[Content]    Show text Well done
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

C3 erste Seite:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 41
[Information]    The retention period on page 41 has been additional 73 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 42
[Content]    Create question IN03
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

C3 letzte Seite:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 42
[Information]    The retention period on page 42 has been additional 30 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 60
[Content]    Show text Well done
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

C4 erste Seite:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 60
[Information]    The retention period on page 60 has been additional 26 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 61
[Content]    Create question IN04
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

Letzte Seite von C4:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 61
[Information]    The retention period on page 61 has been additional 22 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 79
[Content]    Show text Well done
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

Erste Seite von C1:

[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 79
[Information]    The retention period on page 79 has been additional 14 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 4
[Content]    Create question IN01
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567

Letzte Seite von C1:
[Information]    Interview number 616 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 4
[Information]    Retention period on page 4 has been 18 seconds
[Information]    72% of the questions have been answered so far
[Processing]    Create questionnaire page no. 22
[Content]    Show text Well done
[Information]    The following placeholders have been prepared:
%remain% = (text) -1567
by s088878 (310 points)
Ok, ein weiterer Durchgang, diesmal habe ich alle Blöcke gesehen, aber die Reihenfolge war nicht die, die in der internen Variable gespeichert wurde. Diese hätte sein sollen: C1, C3, C2, C4, Ich habe aber C1, C2, C3, C4 erlebt (also wie wenn das System überhaupt nicht geshuffelt hätte, aber das kann ja auch Zufall sein).  

Letzte Seite von dem Block, wo es noch gestimmt hat:
[Information]    Interview number 617 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 23
[Information]    Retention period on page 23 has been 136 seconds
[Information]    94% of the questions have been answered so far
[Processing]    Create questionnaire page no. 22
[Content]    Show text Well done
[Information]    The following placeholders have been prepared:
%remain% = (text) 10

Erste Seite, auf der die Ordnung nicht mehr gestimmt hat:

[Information]    Interview number 617 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 22
[Information]    Retention period on page 22 has been 3 seconds
[Information]    94% of the questions have been answered so far
[Processing]    Create questionnaire page no. 23
[Content]    Create question IN02
[Information]    The following placeholders have been prepared:
%remain% = (text) 10
by s088878 (310 points)
Also ich glaube ich weiß langsam was passiert. Anstatt die Blocks zu shufflen und dann in dieser neuen Reihenfolge zu präsentieren pickt sich das System einen Block heraus, und präsentiert den Fragebogen in der normalen Reihenfolge C1, C2, C3, C4 ab diesen Zeitpunkt. Gerade nochmal probiert, und mir wurde nur der Block C4 präsentiert, weil das die letzte in der Originalabfolge ist... Das würde erklären warum ich alle Blöcke im vorigen Durchgang gesehen habe (der ja die Reihenfolge C1, C2, C3, C4 hatte, also mit C1 begann) und nur 3 im Durchgang davor (wo nur C2, C3, C4 zu sehen waren, also Start ab C2 und dann normale Reihenfolge...).
by SoSci Survey (327k points)
Ja, diesen Eindruck habe ich auch. Und zwar fehlt mir auf allen Seiten nach dem setPageOrder() der Hinweis darauf, dass die Abfolge überhaupt nur verwendet wird.

Verfolgen Sie die Debug-Information bitte nochmal ab Seite 3. Wenn Sie das erste mal "Weiter" klicken, müsste vor dem

> [Processing]    Create questionnaire page no. 23

Eigentlich ein Verweis auf die Seitenabfolge stehen. Wenn nicht, dann passiert auf den Seiten irgend etwas, was setPageOrder() außer Gefecht setzt. Möchten Sie neben der Debug-Information für Seite 3 + nächste vielleicht auch mal den kompletten PHP-Code der Seiten posten, die da angezeigt werden?
by s088878 (310 points)
Die Debug-Information enthält schon eine Auflistung der Seitenabfolge, aber ich weiß nicht genau ob das das ist, was Sie meinen:


[Information]    Interview number 632 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 2
[Information]    Retention period on page 2 has been 4 seconds
[Information]    Answer to IT02_01 = 2
[Information]    Answer to IT02 = 1
[Information]    Answer to IT03_02 = 2
[Information]    Answer to IT03 = 1
[Information]    100% of the questions have been answered so far
[Processing]    Create questionnaire page no. 3
[Content]    Create question ZF06
[Information]    The random generator ZF06 drew these codes: 3, 6, 4, 5
[Information]    No visible content on this page, continue with page 4
[Processing]    Create questionnaire page no. 4
[Information]    Answer to ZF05_01 = C3in
[Information]    The internal variable ZF05_01 gets a value of C3in.
[Information]    Answer to ZF05_02 = C2in
[Information]    The internal variable ZF05_02 gets a value of C2in.
[Information]    Answer to ZF05_03 = C1in
[Information]    The internal variable ZF05_03 gets a value of C1in.
[Information]    Answer to ZF05_04 = C4in
[Information]    The internal variable ZF05_04 gets a value of C4in.
[Information]    According to setPageOrder() the subsequent pages will be shown next:
43 [C3in], 44 [C3p], 45 [C3ready], 46 [C3e1], 47 [C3d1], 48 [C3aed], 49 [C3d2], 51 [C3d3], 52 [C3aem], 50 [C3lcm], 54 [C3e2], 53 [C3d4], 55 [C3d5], 56 [C3aemps], 57 [C3d6], 58 [C3lcd], 60 [C3aempd], 59 [C3d7], 61 [C3done], 24 [C2in], 25 [C2p], 26 [C2ready], 27 [C2e1], 28 [C2d1], 29 [C2aed], 30 [C2d2], 32 [C2d3], 33 [C2aem], 31 [C2lcm], 35 [C2e2], 34 [C2d4], 36 [C2d5], 37 [C2aemps], 38 [C2d6], 39 [C2lcd], 41 [C2aempd], 40 [C2d7], 42 [C2done], 5 [C1in], 6 [C1p], 7 [C1ready], 8 [C1e1], 9 [C1d1], 10 [C1aed], 11 [C1d2], 13 [C1d3], 14 [C1aem], 12 [C1lcm], 16 [C1e2], 15 [C1d4], 17 [C1d5], 18 [C1aemps], 19 [C1d6], 21 [C1lcd], 22 [C1aempd], 20 [C1d7], 23 [C1done], 62 [C4in], 63 [C4p], 64 [C4ready], 65 [C4e1], 66 [C4d1], 70 [C4aed], 68 [C4d2], 71 [C4d3], 67 [C4aem], 76 [C4lcm], 73 [C4e2], 72 [C4d4], 74 [C4d5], 78 [C4aemps], 77 [C4d6], 69 [C4lcd], 75 [C4aempd], 79 [C4d7], 80 [C4done], 81 [FQ0]
debug()    Content: 0[Array], 1[Array], 2[Array], 3[Array]
[Information]    No visible content on this page, continue with page 43
[Processing]    Create questionnaire page no. 43
[Content]    Create question IN03

Der PHP-code auf jeder Seite sieht folgendermaßen aus (wobei die genaue Bennung für $time natürlich immer geändert wird):
if (!isset($timep2)) {
  $timep2 = time();
  registerVariable('timep2');  // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 10;  // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung

// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $timep2 + $timer - time();
replace('%remain%', $remain);

Zusätzlich befindet sich folgender java-code auf jeder Seite:
<script type="text/javascript">
<!--
// Funktion zur Weiterleitung
function weiter() {
  // Den Teilnehmer zur nächsten Seite weiterleiten
  SoSciTools.submitPage();
}
// Countdown anzeigen
var date0 = new Date();
var timeout = date0.getTime() + %remain% * 1000;
function updateCountdown() {
  // Zeit berechnen
  var date = new Date();
  var time = Math.ceil((timeout - date.getTime() - 50) / 1000);  // Verbleibende Zeit in Sekunden
  // Zeit anzeigen
  var out = document.getElementById("remain");
  if (!out) {
    return;
  }
  while (out.lastChild) {
    out.removeChild(out.lastChild);
  }
  var minutes = Math.floor(time / 60);
  var seconds = String(time - 60 * minutes);
  if (seconds.length < 2) seconds = "0" + seconds;
  var display = String(minutes) + ":" + seconds;
  var displayNode = document.createTextNode(display);
  out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
 // Zusätzlicher Timer für die Aktualisierung des Countdowns
  window.setInterval(updateCountdown, 1000);
  updateCountdown();
  // Timer für automatische Weiterleitung starten
  window.setTimeout(weiter, %remain% * 1000);
});
// -->
</script>

sowie ein html-code: <p>Time remaining: <span id="remain"></span></p>
eine Frage, und ein html-code, der das audio einbindet.
by SoSci Survey (327k points)
Das JavaScript hat für PHP keine Relevanz, das können wir außen vor lassen.

Aber wenn Sie passend zur Debug-Information von Seite 3 bitte noch jene der folgenden Seite posten könnten (direkt nach dem Klick auf "Weiter"). Und bitte auch eventuellen PHP-Code dieser folgenden Seite. Danke.
by s088878 (310 points)
Klar! Information von Page 3+4+62 (das springt von Seite 2 automatisch auf diese Seite, da Seite 3 nur eine Zufallsvariable enthält und Seite 4 eben auf Seite 62 weiterleitet):
[Information]    Interview number 636 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 2
[Information]    Retention period on page 2 has been 4 seconds
[Information]    Answer to IT02_01 = 2
[Information]    Answer to IT02 = 1
[Information]    Answer to IT03_02 = 2
[Information]    Answer to IT03 = 1
[Information]    100% of the questions have been answered so far
[Processing]    Create questionnaire page no. 3
[Content]    Create question ZF06
[Information]    The random generator ZF06 drew these codes: 2, 6, 5, 1
[Information]    No visible content on this page, continue with page 4
[Processing]    Create questionnaire page no. 4
[Information]    Answer to ZF05_01 = C4in
[Information]    The internal variable ZF05_01 gets a value of C4in.
[Information]    Answer to ZF05_02 = C2in
[Information]    The internal variable ZF05_02 gets a value of C2in.
[Information]    Answer to ZF05_03 = C3in
[Information]    The internal variable ZF05_03 gets a value of C3in.
[Information]    Answer to ZF05_04 = C1in
[Information]    The internal variable ZF05_04 gets a value of C1in.
[Information]    According to setPageOrder() the subsequent pages will be shown next:
62 [C4in], 63 [C4p], 64 [C4ready], 65 [C4e1], 66 [C4d1], 70 [C4aed], 68 [C4d2], 71 [C4d3], 67 [C4aem], 76 [C4lcm], 73 [C4e2], 72 [C4d4], 74 [C4d5], 78 [C4aemps], 77 [C4d6], 69 [C4lcd], 75 [C4aempd], 79 [C4d7], 80 [C4done], 24 [C2in], 25 [C2p], 26 [C2ready], 27 [C2e1], 28 [C2d1], 29 [C2aed], 30 [C2d2], 32 [C2d3], 33 [C2aem], 31 [C2lcm], 35 [C2e2], 34 [C2d4], 36 [C2d5], 37 [C2aemps], 38 [C2d6], 39 [C2lcd], 41 [C2aempd], 40 [C2d7], 42 [C2done], 43 [C3in], 44 [C3p], 45 [C3ready], 46 [C3e1], 47 [C3d1], 48 [C3aed], 49 [C3d2], 51 [C3d3], 52 [C3aem], 50 [C3lcm], 54 [C3e2], 53 [C3d4], 55 [C3d5], 56 [C3aemps], 57 [C3d6], 58 [C3lcd], 60 [C3aempd], 59 [C3d7], 61 [C3done], 5 [C1in], 6 [C1p], 7 [C1ready], 8 [C1e1], 9 [C1d1], 10 [C1aed], 11 [C1d2], 13 [C1d3], 14 [C1aem], 12 [C1lcm], 16 [C1e2], 15 [C1d4], 17 [C1d5], 18 [C1aemps], 19 [C1d6], 21 [C1lcd], 22 [C1aempd], 20 [C1d7], 23 [C1done], 81 [FQ0]
debug()    Content: 0[Array], 1[Array], 2[Array], 3[Array]
[Information]    No visible content on this page, continue with page 62
[Processing]    Create questionnaire page no. 62
[Content]    Create question IN04

Seite 63:
[Information]    Interview number 636 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 3+4+62
[Information]    Retention period on page 62 has been 169 seconds
[Information]    100% of the questions have been answered so far
[Information]    According to the previously set page order, page 63 [C4p] is shown
[Processing]    Create questionnaire page no. 63
[Content]    Show text sit - foot
[Content]    Show text timer anzeigen
[Content]    Show text next_b hide for 5 seconds
[Content]    Show text timer_java_expanded
[Content]    Create question IN08
[Content]    Show text mp3_foot
[Information]    The following placeholders have been prepared:
%remain% = (text) 16

PHP-Code auf Seite 63:
if (!isset($timep4b)) {
  $timep4b = time();
  registerVariable('timep4b');  // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 16;  // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung

// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $timep4b + $timer - time();
replace('%remain%', $remain);
by SoSci Survey (327k points)
In Ordnung, hier passt noch alles:

> According to the previously set page order, page 63 [C4p] is shown

Jetzt müssten Sie bitte nachverfolgen, auf welcher Seite diese Zeile verschwindet. Und dann liegt das Problem entweder auf dieser Seite oder (wahrscheinlicher) auf der vorhergehenden. Von diesen beiden bräuchten wir dann nochmal die Debug-Information.
by s088878 (310 points)
Verschwunden war es dann auf der Seite, die nach den geshuffelten Blöcken kommen soll (FQ0). Diese Seite erschein gleich nach Block C4, obwohl die Abfolge C4, C1, C3, C2 hätte sein sollen, dann hätte erst die Seite FQ0 kommen sollen. Die debug-Info ist wie folgt:
[Information]    Interview number 637 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 80
[Information]    Retention period on page 80 has been 37 seconds
[Information]    11% of the questions have been answered so far
[Processing]    Create questionnaire page no. 81
[Content]    Create question IN09
[Information]    The following placeholders have been prepared:
%remain% = (text) 16

Die Seite davor war 'C4done' (also die letzte Seite von Block C4):
[Information]    Interview number 637 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 79
[Information]    Retention period on page 79 has been 6 seconds
[Information]    Answer missing for SI15_01
[Information]    11% of the questions have been answered so far
[Information]    According to the previously set page order, page 80 [C4done] is shown
[Processing]    Create questionnaire page no. 80
[Content]    Show text Well done
[Information]    The following placeholders have been prepared:
%remain% = (text) 16
by SoSci Survey (327k points)
Okay, ich sehe jetzt natürlich nicht die Seitenabfolge von Seite 3 - aber ein Kandidat für Probleme ist nun Seite 80 [C4Done]. Gibt es auf dieser Seite PHP-Code?
by s088878 (310 points)
Die geplante Seitenfolge hab ich glücklicherweise damals abgespeichert, hier die komplette Info:

[Information]    Interview number 637 is to be continued
[Information]    Questionnaire qnr7C5 from project test_intELF will be used
[Processing]    Reading answers from page 2
[Information]    Retention period on page 2 has been 3 seconds
[Information]    Answer to IT02_01 = 2
[Information]    Answer to IT02 = 1
[Information]    Answer to IT03_02 = 2
[Information]    Answer to IT03 = 1
[Information]    100% of the questions have been answered so far
[Processing]    Create questionnaire page no. 3
[Content]    Create question ZF06
[Information]    The random generator ZF06 drew these codes: 5, 4, 6, 1
[Information]    No visible content on this page, continue with page 4
[Processing]    Create questionnaire page no. 4
[Information]    Answer to ZF05_01 = C4in
[Information]    The internal variable ZF05_01 gets a value of C4in.
[Information]    Answer to ZF05_02 = C1in
[Information]    The internal variable ZF05_02 gets a value of C1in.
[Information]    Answer to ZF05_03 = C3in
[Information]    The internal variable ZF05_03 gets a value of C3in.
[Information]    Answer to ZF05_04 = C2in
[Information]    The internal variable ZF05_04 gets a value of C2in.
[Information]    According to setPageOrder() the subsequent pages will be shown next:
62 [C4in], 63 [C4p], 64 [C4ready], 65 [C4e1], 66 [C4d1], 70 [C4aed], 68 [C4d2], 71 [C4d3], 67 [C4aem], 76 [C4lcm], 73 [C4e2], 72 [C4d4], 74 [C4d5], 78 [C4aemps], 77 [C4d6], 69 [C4lcd], 75 [C4aempd], 79 [C4d7], 80 [C4done], 5 [C1in], 6 [C1p], 7 [C1ready], 8 [C1e1], 9 [C1d1], 10 [C1aed], 11 [C1d2], 13 [C1d3], 14 [C1aem], 12 [C1lcm], 16 [C1e2], 15 [C1d4], 17 [C1d5], 18 [C1aemps], 19 [C1d6], 21 [C1lcd], 22 [C1aempd], 20 [C1d7], 23 [C1done], 43 [C3in], 44 [C3p], 45 [C3ready], 46 [C3e1], 47 [C3d1], 48 [C3aed], 49 [C3d2], 51 [C3d3], 52 [C3aem], 50 [C3lcm], 54 [C3e2], 53 [C3d4], 55 [C3d5], 56 [C3aemps], 57 [C3d6], 58 [C3lcd], 60 [C3aempd], 59 [C3d7], 61 [C3done], 24 [C2in], 25 [C2p], 26 [C2ready], 27 [C2e1], 28 [C2d1], 29 [C2aed], 30 [C2d2], 32 [C2d3], 33 [C2aem], 31 [C2lcm], 35 [C2e2], 34 [C2d4], 36 [C2d5], 37 [C2aemps], 38 [C2d6], 39 [C2lcd], 41 [C2aempd], 40 [C2d7], 42 [C2done], 81 [FQ0]
debug()    Content: 0[Array], 1[Array], 2[Array], 3[Array]
[Information]    No visible content on this page, continue with page 62
[Processing]    Create questionnaire page no. 62
[Content]    Create question IN04

Auf Seite 80 befindest sich kein PHP-Code - nur ein Textfeld (formatierter Test), der lautet "Well done ! Please click 'next' to proceed.".
by SoSci Survey (327k points)
Okay, ich glaube, das müsste ich mir selbst einmal ansehen... Wenn es Ihnen recht wäre, dass ich einen Administrator-Login für das Projekt einrichte, teilen Sie mir doch bitte kurz mit, (a) dass das in Ordnung ist und (b) wie es heißt? Danke.
by s088878 (310 points)
Das ist mir sehr recht :). Das Projekt heißt "Test Int in ELF" (unter dem Titel steht im Befragungsprojekt klein "test_intELF", falls das wichtig ist).
by SoSci Survey (327k points)
Hui, Sie haben da ja gleich mehere Fragebögen im Projekt. Ich orientiere mich mal ander Debug-Information und teste mit "qnr7C5"...
by SoSci Survey (327k points)
Okay ... das Problem war schnell gefunden. Sie verwenden auf Seite 64 (und vermutlich auch auf anderen Seiten) erneut die Funktion `setPageOrder()`.

Wenn ich mich nicht täusche, ist das überflüssig, das scheint mir ein Relikt der vorherigen Implementierung zu sein, als noch jeder Block separat gemischt wurde. Das neue `setPageOrder()` jedenfalls überschrift die ursprünglich gesetzte Abfolge - und deshalb ist nach dem Block Schluss.

Tipp: Wenn Sie alle `setPageOrder()` im Fragebogen finden möchten, verwenden Sie die Karteireiter "Interner Code" und dann die Suchfunktion des Browsers (Strg+F).
by s088878 (310 points)
Hallo,
Ja, das sind sehr viele Testversionen dabei, aber "qnr7C5" war schon die richtige ;).

Oje, das hatte ich wohl übersehen. Allerdings bin ich mir jetzt nicht ganz sicher wie ich das hier rausnehmen soll, denn das ist nicht einfach nur ein 'Relikt' - ich brauche diese 4 setPageOrder(), weil ich hier items aus einer gezogenen Seitenabfolge herausnehme und rotieren lasse (siehe https://support.soscisurvey.de/?qa=4194/put-funktion-um-rotation-festzuhalten&show=4251#c4251). Bin mir also jetzt nicht ganz sicher, wie ich das Problem lösen soll :S.
by SoSci Survey (327k points)
Sie können nur eine aktive Seitenabfolge im Fragebogen verwenden - auf den ersten Blick war mein Eindruck, dass Sie das alles schon zu Beginn rotieren. Wenn nicht, dann müssten Sie einfach schon auf der ersten Seite dafür sorgen, dass sie den kompletten Ablauf durchrotieren, wie er sein soll.
by s088878 (310 points)
edited by s088878
Ah, ok, dh. ich würde sämtliche codes, dich ich erst auf den späteren Seiten verwende, auf die Seite geben, wo ich jetzt die Blöcke mische?

Mir ist noch immer nicht ganz klar, was ich dann mit den setPageOrder()s mache. Ich kann die doch nicht einfach rauslöschen??
by SoSci Survey (327k points)
Im Prinzip ja - und dann müssten Sie eine (!) gemeinsame Seitenabfolge festlegen, die sie dann an `setPageOrder()` übergeben. Details können wir gerne in einer neuen Frage hier im Online-Support klären :)
by s088878 (310 points)
Ok, done! Hoffe es ist im neuen Post noch nachvollziehbar!

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

...