Auswahl in Textarea
Bärbel
- php
0 ChrisB0 Bärbel0 ChrisB
Hallo,
wie kann ich einer Textarea mit PHP einen Text zuweisen?
Ich habe ein Selectmenü (sofern das so heißt) wo verschiedene Auswahlmöglichkeiten drin stehen.
Je nach Auswahl, soll dann in einer Textarea ein bestimmter Wert drin stehen.
Leider klappt das nicht so wie ich möchte.
Hier mal ein Auszug aus meinem Quelltext:
<form name="select" method="POST">
<select name="texte">
<option value="erster">Text3</option>
<option value="zweiter">Text2</option>
</select>
<textarea name="ausgabe" cols="90" rows="1">
<?php
$str='';
if($_POST['texte']=='erster')
$str='Erste Auswahl';
else
$str='Zweite Auswahl';
echo $srt;
?>
</textarea>
</form>
Weiß jemand was ich falsch mache?
Hi,
Weiß jemand was ich falsch mache?
Du hast das error_reporting nicht auf E_ALL gestellt (und evtl. display_errors nicht auf on) - sonst haette es dich auf den Schreibfehler im Variablennamen hingewiesen.
MfG ChrisB
Hallo ChrisB,
daran liegt es leider nicht, der Schreibfehler kam nur zustande, da ich den Quelltext hier nochmal händisch geschrieben habe.
Ist die sonstige Vorgehensweise denn korrekt?
Hi,
Ist die sonstige Vorgehensweise denn korrekt?
Na ja, ein Absendebutton, um das Formular auch abzuschicken, waere vielleicht nicht schlecht. Dass dir POST-Werte erst danach zur Verfuegung stehen, ist dir doch wohl bewusst?
Und deshalb fehlt auch die Abfrage darauf, ob ueberhaupt POST-Werte zur Verfuegung stehen. Also isset() nutzen, sonst gibt naemlich auch der Zugriff eine Fehlermeldung, wenn die Seite nicht durch Abschicken eines Formulars aufgerufen wurde.
MfG ChrisB
Na ja, ein Absendebutton, um das Formular auch abzuschicken, waere vielleicht nicht schlecht. Dass dir POST-Werte erst danach zur Verfuegung stehen, ist dir doch wohl bewusst?
Nein, das war mir in der Tat nicht bewusst.
Geht das denn nicht Live, sprich ohne nochmal extra auf einen Absendebutton zu klicken?
Das wäre mir viel lieber.
Hallo,
Geht das denn nicht Live, sprich ohne nochmal extra auf einen Absendebutton zu klicken?
Ja, aber nicht mit PHP. Für clientseitige Interaktion gibt es JavaScript. Dabei solltest du aber beachten, dass nicht alle Browser JavaScript unterstützen (sind zwar nicht viele, aber es gibt sie...) oder dieses abgeschaltet sein kann. Daher empfiehlt es sich, eine Seite so zu gestalten, dass Notfalls eine Serverseitige Lösung zum Einsatz kommt (in deinem Fall könnte das z.B. ein Submit-Button neben der Auswahlliste sein, nach dessen Klick der Text serverseitig in das Formularfeld geladen wird).
mfg. Daniel
Javascript ist kein Problem, da dieses Eingabefeld nur für ein kleines selbstgeschriebenes CMS dienen soll, welches der Kunde auf seinem eigenen Rechner ausführt.
Auf diesem ist Javascript aktiviert.
Das Frontend der Seite kommt gänzlich ohne JS aus.
Aber wie mache ich das am besten mit JS?
Nach Auswahl des Punktes im Auswahlmenü sollte sollte dann ein Wert aus einer Datenbank direkt in die Textarea geschrieben werden.
Hallo,
Aber wie mache ich das am besten mit JS?
Nach Auswahl des Punktes im Auswahlmenü sollte sollte dann ein Wert aus einer Datenbank direkt in die Textarea geschrieben werden.
Definiere einen http://de.selfhtml.org/javascript/sprache/eventhandler.htm@title=Eventhandler für das http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=Change-Ereignis des Auswahlmenüs, der den Wert des <http://de.selfhtml.org/javascript/objekte/options.htm#selected_index@title=selektierten Elements> ausliest und der http://de.selfhtml.org/javascript/objekte/options.htm#value@title=value-Eigenschaft der Textarea zuweist.
mfg. Daniel
Hi,
Javascript ist kein Problem, da dieses Eingabefeld nur für ein kleines selbstgeschriebenes CMS dienen soll, welches der Kunde auf seinem eigenen Rechner ausführt.
Nach Auswahl des Punktes im Auswahlmenü sollte sollte dann ein Wert aus einer Datenbank direkt in die Textarea geschrieben werden.
Das ganze soll also ohne Request zum Server nur clientseitig geschehen, aber es soll ein Wert aus der (serverseitigen) Datenbank dabei verwendet werden?
cu,
Andreas
Das ganze soll also ohne Request zum Server nur clientseitig geschehen, aber es soll ein Wert aus der (serverseitigen) Datenbank dabei verwendet werden?
Ich erkläre nochmal kurz wie das Script (idealerweise) funktionieren soll.
An sich wäre das ja kein Problem, mit einem Submit Button, wie im Verlaufe dieses Topics bereits geklärt, funktioniert das ja.
Aber ideal wäre, wenn sich der Text live ändert, sprich ohne Klick auf einen Submit Button.
Mit JS ginge das ja, nur eben nicht mit Zugriff auf die Texte in der Datenbank.
Ergo bleibt mir nur der Submit Button. Korrekt?
Hallo Bärbel,
Ergo bleibt mir nur der Submit Button. Korrekt?
nicht ganz,
weil es viele gibt, die sowas machen wollen, wurde AJAX erfunden.
D.h. man definiert den onChange-Handler im Select-Feld und ruft damit
via AJAX ein PHP-Script auf, welches die Daten aus der Datenbank liest
und an den Browser sendet. Nun kannst Du den erhaltenen Text in das
TextArea einfügen.
HTH
m.b.G. Rolf