0 votes
in SoSci Survey (dt.) by s093547 (125 points)

Hallo Liebes Support-Team,

ich habe einen Textbaustein, in dem ich einen Platzhalter eingefügt habe:

Ein %beruf% bittet dich um Hilfe.

Für den Platzhalter sollen randomisiert 2 Berufe eingesetzt werden, welche ich in eine Liste gepackt habe. Wie in der Erklärung zu "Platzhalter" habe ich nun den restlichen Code wie folgt gestaltet:

$beruf = array(
1 => 'Chirurg',
2 => 'Anwalt',
);

urnDraw('ber_hoch', 'IV01');
$code = value('IV01_01');

$be = $beruf[$code];

replace('%beruf%', $be);

Als nächstes habe ich meinen Textbaustein genau unter den php-Code eingefügt.

Nun kommen jedoch die Fehlermeldungen
1. dass mir ein 2. Argument für meine replace-Funktion fehlt
2. dass ich weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() für meinen Text festgelegt habe.

Ich habe nach Lösungen gesucht aber bin leider nicht fündig geworden bzw habe es nicht wirklich verstanden.

Für jede Hilfe wäre ich sehr dankbar!
Danke schon einmal im Voraus und liebe Grüße

1 Answer

0 votes
by SoSci Survey (305k points)

Vorab: Es gäbe eine deutlich einfachere Lösung. Schreiben Sie "Chirurg" und "Anwalt" in eine Frage vom Typ "Zufallsgenerator" (z.B. RG01) und verwenden Sie nur folgende Zeile:

replace('%beruf%', 'RG01', 'response');

Wenn Sie bei Ihrer Lösung bleiben möchten, posten Sie bitte einmal die Debug-Information zur betroffenen Seite. Durch das Komma hinter dem 'Anwalt' gibt es im Array noch einen leeren Eintrag - womöglich wird dieser gezogen. Lassen Sie sich zusätzlich die Werte von $code und $be anzeigen wie folgt:

debug($code);
debug($be);
by s091675 (130 points)
Hallo :-) ich schließe mich hier mal an. Ich habe es genauso gemacht wie oben aber ich habe exakt die gleiche Fehlermeldung.
In meinem PHP-Code steht nur:
(mit natürlich anderen Bezeichnungen)

replace('%play%','ZU01','response');

was kann es denn sonst sein?
by s093547 (125 points)
Vielen Dank erstmal!
Der erste Vorschlag hat bei mir nicht so gut geklappt. Ich müsste dafür also "Chirurg" und "Anwalt" in die Liste schreiben als einen Zufallsgenerator, dann die Zufallsauswahl vornehmen, diesen Code anfügen sowie meinen Textbaustein?
Es kommt wieder die Fehlermeldung: "Für den Platzhalter %beruf% wurde weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() festgelegt."

Als debug-Information für meinen Versuch habe ich bekommen:

Debug-Information für $code:
$code = Anwalt (string)

Debug-Information für $be:
Keine Daten (null)
by SoSci Survey (305k points)
Die Fehlermeldung kommt daher, dass in Variable $be nichts (NULL) gespeichert ist:

> Debug-Information für $be:
> Keine Daten (null)

Das wiederum liegt daran, dass Sie offenbar in der Urne nicht die Zahlen 1 und 2 angelegt haben, sondern direkt die Beschriftungen. Deshalb ist in $code auch kein Code gespeichert, sondern gleich die Beschriftung. Für die Auswertung ist es i.d.R. einfacher, numerische Codes zu verwenden.

Wenn Sie Ihre Urne belassen wollen, wie Sie möchten, dann lassen Sie das Array zu Beginn und die Zeile $be = $beruf[$code]; weg und schreiben Sie:

replace('%beruf%', $code);

> Der erste Vorschlag hat bei mir nicht so gut geklappt. Ich müsste dafür also "Chirurg" und "Anwalt" in die Liste schreiben als einen Zufallsgenerator, dann die Zufallsauswahl vornehmen, diesen Code anfügen sowie meinen Textbaustein?

Nein, Sie würden eine Frage "Zufalsgenerator" mit den beiden Beschriebungen anlegen, würden diese Frage in die Seite ziehen und bräuchten darunter wirklich nur noch die eine Zeile PHP-Code.
by s093547 (125 points)
Danke, das macht Sinn! Jetzt funktioniert es :-)
by s154461 (150 points)
Hallo, ich habe genau das selbe Problem, aber ich kann weder die Urnen Lösung bei mir erfolgreich anwenden, noch den Zufallsgeneratorvorschlag.
Vielleicht kann mir ja jemand weiterhelfen:

$berufe=array(
1    =>    'Film-, Fernsehkamera Studienfach',
2    =>    'Film-und Fernsehproduktion Studienfach',
3    =>    'Gesang Studienfach',
4    =>    'Tanz (Ausbildung oder Studienfach)',
5    =>    'Regie Studienfach',
);

// -> weiterer PHP Code:

urnDraw('urne','IV01');
$code = value('IV01_01');

$be = $berufe[$code];

replace('%berufe%', $be);

/// dann kommt ein weiterer PHP Code:
show('B138');
question('B139');
// In der Question B139 ist ein Platzhalter %berufe% der eigentlich gefüllt werden sollte mit dem gezogenen Beruf aus der Urne - funktioniert aber nicht
by SoSci Survey (305k points)
Bitte wärmen Sie keine Fragen von 2018 (!) auf ... Sie können aber gerne den Knopf "Related Question" oben verwenden.

> ich habe genau das selbe Problem

Bitte beschreiben Sie in Ihrer Frage das Problem etwas detaillierter. Falls Fehlermeldungen angezeigt werden, posten Sie diese bitte im Wortlaut und vergessen Sie nicht, auch die Debug-Informatiopn zu posten. Danke.
asked Mar 3, 2022 in SoSci Survey (dt.) by s154461 (150 points)
edited Mar 3, 2022 by SoSci Survey
Platzhalter & Urnenziehung von Textschnipsel

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

...