Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:php [09.01.2015 12:41] adminde:create:php [15.04.2020 20:28] (aktuell) – [PHP-Code im Fragebogen verwenden] admin
Zeile 6: Zeile 6:
  
 Dieses Kapitel versucht, einen kleinen Einstieg in die Programmierung mit PHP zu geben. Keine breite Einführung in die Programmiersprache, sondern nur gerade so viel, wie man für fortgeschrittene Fragebögen und/oder Filter braucht. Dieses Kapitel versucht, einen kleinen Einstieg in die Programmierung mit PHP zu geben. Keine breite Einführung in die Programmiersprache, sondern nur gerade so viel, wie man für fortgeschrittene Fragebögen und/oder Filter braucht.
 +
 +**Tipp:** [[https://www.soscisurvey.de/homepage/index.php?id=screencast#extra|Video-Tutorial zu PHP-Code]]
 +
  
 ===== PHP-Code im Fragebogen verwenden ===== ===== PHP-Code im Fragebogen verwenden =====
Zeile 16: Zeile 19:
  
 Nach dem Einfügen des //PHP-Code//-Elements erscheint im Fragebogen ein Texteingabefeld, in das man PHP-Code eingeben kann. Nach dem Einfügen des //PHP-Code//-Elements erscheint im Fragebogen ein Texteingabefeld, in das man PHP-Code eingeben kann.
 +
 +**Hinweis:** Der PHP-Code wird ausgeführt, sobald die Seite beim Ausfüllen des Fragebogens oder in der Vorschau geöffnet wird.
  
 ===== Bequemer programmieren (Fragen und Texte) ===== ===== Bequemer programmieren (Fragen und Texte) =====
Zeile 53: Zeile 58:
 ===== Variablen ===== ===== Variablen =====
  
-Der Begriff //Funktion// kommt ja eigentlich aus der Mathematik. Und der Befehl ''question()'' hat mit einer Funktion noch herzlich wenig zu tun. Aber Funktionen können auch etwas berechnen. So berechnet der Befehl ''[[:de:create:functions:random|random()]]'' zum Beispiel eine Zufallszahl. +Der Begriff //Funktion// kommt aus der Mathematik. Und der Befehl ''question()'' hat mit einer mathematischen Funktion noch herzlich wenig zu tun. Aber Funktionen können auch etwas berechnen oder anderweitig ermitteln. So ermittelt der Befehl ''[[:de:create:functions:casenumber|caseNumber()]]'' zum Beispiel die Nummer des laufenden Interviews (CASE).
- +
-Die Funktion ''random()'' erwartet 2 Parameter, nämlich die kleinste und die größte Zahl, die gewürfelt werden darf. ''random(1,6)'' würde als eine Zahl zwischen 1 und 6 würfeln. Mit dieser Zahl möchten wir aber etwas machen, z.B. einen Stimulus zufällig auswählen.+
  
 <code php> <code php>
-$zahl random(1,6);  // Würfelt eine Zahl zwischen 1 und 6+$num caseNumber();
 </code> </code>
  
-Damit wir mit dem Ergebnis der Funktion (in diesem Fall also mit der Zufallszahl) etwas machen können, müssen wir sie irgendwo ablegen. Dafür gibt es in den meisten Programmiersprachen so genannte Variablen. Variablen kann man sich etwa wie ein leeres Eingabefeld im Fragebogen vorstellen: Man kann etwas hineinschreiben. Nur sieht das zunächst keiner.+Damit wir mit dem Ergebnis der Funktion (in diesem Fall also mit der Interview-Nummer) etwas machen können, müssen wir sie vorübergehend speichern. Dafür gibt es in den meisten Programmiersprachen Variablen. Variablen kann man sich etwa wie ein leeres Eingabefeld im Fragebogen vorstellen: Man kann etwas hineinschreiben. Nur sieht das zunächst keiner und es wird auch nicht im Datensatz gespeichert.
  
-In PHP beginnen Variablen immer mit einem Dollar-Zeichen ($). Im Beispiel oben gibt es eine Variable ''$zahl''. Wie man seine Variablen nennt ist Geschmackssache -- nur Umlaute und Sonderzeichen außer dem Unterstrich (_) sind weitgehend verboten. Statt ''$zahl'' könnte man also genauso ''$variable_fuer_zufallszahl'' schreiben. Aber das ist eben etwas länger.+In PHP beginnen Variablen immer mit einem Dollar-Zeichen (''$''). Im Beispiel oben gibt es eine Variable ''$num''. Wie man seine Variablen nenntist Geschmackssache -- nur Umlaute und Sonderzeichen außer dem Unterstrich (''_'') sind weitgehend verboten. Statt ''$num'' könnte man also genauso ''$variable_fuer_fallnummer'' schreiben.
  
-Das Istgleich-Zeichen %%(=)%% ist ein so genannter Operator. Es sorgt einfach dafür, dass das, was die Funktion ''random()'' zurückgibt in der Variable ''$zahl'' links davon gespeichert wird. In der Variable ''$zahl'' steht nun also die Zufallszahl.+Das Istgleich-Zeichen %%(=)%% ist ein //Operator//. Es sorgt dafür, dass das, was die Funktion ''caseNumber()'' zurückgibt in der Variable ''$num'' links vom Operator gespeichert wird. In der Variable ''$num'' steht nun also die Interview-Nummer.
  
-Wenn wir diese Zufallszahl nun auch noch anzeigen möchten, benötigen wir den Befehl ''[[:de:create:functions:html|html()]]''. Diese Funktion macht nichts anderes, als HTML-Code (also z.B. Text) in den Fragebogen zu schreiben.+Wenn wir diese Nummer nun auch noch anzeigen möchten, benötigen wir den Befehl ''[[:de:create:functions:html|html()]]''. Diese Funktion macht nichts anderes, als HTML-Code (also z.B. Text) in den Fragebogen zu schreiben.
  
 <code php> <code php>
-$zahl random(1,6);  // Würfelt eine Zahl zwischen 1 und 6 und speichert sie in der Variable $zahl +$num caseNumber(); 
-$text = (string)$zahl; // Die Zahl in einen Text umwandeln und in $text speichern +$text = (string)$num; // Die Zahl in einen Text umwandeln und in $text speichern 
-html($text);  // Schreibt den Text $text, der die Zahl enthält, in den Fragebogen+html($text);  // Schreibt den Inhalt von $text in den Fragebogen
 </code> </code>
  
 **Hinweis:** Falls Sie sich über die Umwandlung der Zahl in einen Text wundern: Sie könnten auch ''html($zahl)'' schreiben -- und es würde auch funktionieren. Aber SoSci Survey wäre irritiert, warum Sie im Befehl ''html()'' keinen Text (String) verwenden, und würde Sie mit einer Fehlermeldung auf den vermeintlichen Missstand aufmerksam machen. **Hinweis:** Falls Sie sich über die Umwandlung der Zahl in einen Text wundern: Sie könnten auch ''html($zahl)'' schreiben -- und es würde auch funktionieren. Aber SoSci Survey wäre irritiert, warum Sie im Befehl ''html()'' keinen Text (String) verwenden, und würde Sie mit einer Fehlermeldung auf den vermeintlichen Missstand aufmerksam machen.
  
-Legt man in einem Fragebogen einen PHP-Code als Element an und fügt die obigen drei Zeilen ein, so erhält man ein wenig spektakuläres Ergebnis: Es wird eine zufällige Zahl zwischen 1 und 6 angezeigt. Wenn man die Seite neu lädt, so wird eine andere Zahl gewürfelt und angezeigt.+Legt man in einem Fragebogen einen PHP-Code als Element an und fügt die obigen drei Zeilen ein, so erhält man ein wenig spektakuläres Ergebnis: Bei jedem Aufruf des Fragebogens wird eine stetig steigende Zahl angezeigt.
  
-{{:de:create:scr.php.random.png?nolink|Anzeige einer Zufallszahl im Fragebogen}}+{{:de:create:scr.php.random.png?nolink|Anzeige einer Zahl im Fragebogen}}
  
-Wie man Zufallszahlen sinnvoll verwenden kann, beschreibt das Kapitel [[:de:create:randomization|Randomisierung]]. Für den Moment geht es aber um Variablen: In diese kann man Werte zwischenspeichern und an anderer Stelle wieder verwenden.+Den Befehl ''caseNumber()'' werden Sie vermutlich nicht häufig benötigen. Für den Moment geht es vorrangig um Variablen: In diese kann man Werte zwischenspeichern und an anderer Stelle wieder verwenden.
  
 ===== Texte aneinanderhängen ===== ===== Texte aneinanderhängen =====
de/create/php.1420803673.txt.gz · Zuletzt geändert: 09.01.2015 12:41 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki