Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
de:create:filter-items [22.10.2014 20:56] – admin | de:create:filter-items [20.03.2016 15:02] – [Items in eine anderen Frage übernehmen] hofmann | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
Gelegentlich soll eine Frage nicht alle Items anzeigen, sondern nur solche, die in einer anderen Frage vorher ausgewählt wurden. Und eventuell soll die Anzahl der Items auch noch beschränkt werden. | Gelegentlich soll eine Frage nicht alle Items anzeigen, sondern nur solche, die in einer anderen Frage vorher ausgewählt wurden. Und eventuell soll die Anzahl der Items auch noch beschränkt werden. | ||
Zeile 5: | Zeile 5: | ||
Dieses Kapitel erklärt, wie man Items in eine andere Frage übernimmt. Normalerweise genügen dafür 2-3 Zeile PHP-Code. Falls Sie bisher noch keinen PHP-Code verwendet haben, lesen Sie bitte zunächst die [[php|Einführung in PHP-Code]]. | Dieses Kapitel erklärt, wie man Items in eine andere Frage übernimmt. Normalerweise genügen dafür 2-3 Zeile PHP-Code. Falls Sie bisher noch keinen PHP-Code verwendet haben, lesen Sie bitte zunächst die [[php|Einführung in PHP-Code]]. | ||
- | Falls es komplizierter wird, benötigen Sie zusätzlich sogenannte //Arrays//. Sollten Sie in den Beispielen unten über eckige Klammern stolpern ('' | ||
===== Aufgabenstellung 1 ===== | ===== Aufgabenstellung 1 ===== | ||
Zeile 13: | Zeile 12: | ||
{{scr.filter-itemcount.png? | {{scr.filter-itemcount.png? | ||
- | In folgender Frage (TF05) sollen nur die Medien zur Auswahl stehen, die der Befragte mindestens einmal im Monat nutzt. | + | In folgender Frage (TF05) sollen nur die Medien zur Auswahl stehen, die der Befragte mindestens einmal im Monat nutzt. |
+ | |||
+ | **Tipp:** Es ist wichtig, dass beide Fragen | ||
{{scr.filter-items.selection.png? | {{scr.filter-items.selection.png? | ||
Zeile 19: | Zeile 20: | ||
Ziel ist es nun, dass die zweite Frage nur die Medien (Items) zu Auswahl zeigt, die in der ersten Frage eine Bewertung von mindestens 2 erhalten haben. | Ziel ist es nun, dass die zweite Frage nur die Medien (Items) zu Auswahl zeigt, die in der ersten Frage eine Bewertung von mindestens 2 erhalten haben. | ||
- | ==== Kurzfassung ==== | ||
- | Die Funktion '' | + | ==== Die kompakte Lösung ==== |
- | Wenn Sie die Frage TF04 auf Seite 1 gestellt | + | Die Funktion '' |
+ | |||
+ | Damit der PHP-Code funktioniert, | ||
<code php> | <code php> | ||
Zeile 34: | Zeile 36: | ||
Die weitere Anleitung beschreibt, wie Sie mit Arrays im Detail arbeiten. Dies ist vor allem dann interessant, | Die weitere Anleitung beschreibt, wie Sie mit Arrays im Detail arbeiten. Dies ist vor allem dann interessant, | ||
- | ==== Der Lange Weg ==== | ||
- | Die Funktion '' | + | ==== Der Lange Weg ==== |
- | Bitte lesen Sie zum Verständnis des folgenden PHP-Code die [[array|Einführung in Arrays]]. | + | Die Funktion '' |
<code php> | <code php> | ||
Zeile 123: | Zeile 124: | ||
</ | </ | ||
- | Jetzt müssen nur noch die entsprechenden Fragen gestellt werden. Auch das funktioniert wieder am schnellsten mit Hilfe eines Arrays. Man hat die Möglichkeit, | + | Jetzt müssen nur noch die entsprechenden Fragen gestellt werden. Auch das funktioniert wieder am schnellsten mit Hilfe eines Arrays. Man hat die Möglichkeit, |
<code php> | <code php> | ||
Zeile 140: | Zeile 141: | ||
In diesem Array beginnen die Indizes nun nicht mit 0, sondern mit 1. Das Array sieht aus wie folgt: | In diesem Array beginnen die Indizes nun nicht mit 0, sondern mit 1. Das Array sieht aus wie folgt: | ||
+ | ^Index| 1 | 2 | 3 | 4 | 5 | 6 | | ||
^Wert|TF_06|TF_07|TF_08|TF_09|TF_10|TF_11| | ^Wert|TF_06|TF_07|TF_08|TF_09|TF_10|TF_11| | ||
- | ^Index| 1 | 2 | 3 | 4 | 5 | 6 | | ||
Mit '' | Mit '' | ||
Zeile 149: | Zeile 150: | ||
// Fortsetzung | // Fortsetzung | ||
$anzahl = count($itemliste); | $anzahl = count($itemliste); | ||
- | if ($anzahl > 2) { | ||
- | $anzahl = 2; // Maximal zwei Polprofile abfragen | ||
- | } | ||
if ($anzahl == 0) { | if ($anzahl == 0) { | ||
goToPage(' | goToPage(' | ||
+ | } | ||
+ | if ($anzahl > 2) { | ||
+ | $anzahl = 2; // Maximal zwei Polprofile abfragen | ||
} | } | ||
for ($i=0; $i< | for ($i=0; $i< | ||
Zeile 179: | Zeile 180: | ||
); | ); | ||
$anzahl = count($itemliste); | $anzahl = count($itemliste); | ||
- | if ($anzahl > 2) { | ||
- | $anzahl = 2; // Maximal zwei Polprofile abfragen | ||
- | } | ||
if ($anzahl == 0) { | if ($anzahl == 0) { | ||
goToPage(' | goToPage(' | ||
+ | } | ||
+ | if ($anzahl > 2) { | ||
+ | $anzahl = 2; // Maximal zwei Polprofile abfragen | ||
} | } | ||
for ($i=0; $i< | for ($i=0; $i< | ||
Zeile 192: | Zeile 193: | ||
</ | </ | ||
- | Im Fragebogen könnte das dann so aussehen | + | Im Fragebogen könnte das dann so aussehen: |
- | {{scr.filter-itemcount.png? | + | {{scr.filter-items.example.png? |
Seite 2 zeigt zufällig die Fragen für Tageszeitung, | Seite 2 zeigt zufällig die Fragen für Tageszeitung, |