Eingabefeld dynamisch erzeugen
Schneidwui
- php
Wie kann ich ein Eingabefeld dynamisch erzeugen / erscheinen lassen...ohne mit Layern zu arbeiten??? (in Netscape!)
Also folgendes Anwendungsbeispiel
Der Benutzer hat eine Auswahlliste, aus dem er einen Wert auswählen kann...wenn dieser Wert nicht vorhanden ist, soll er die Möglichkeit einer manuellen Eingabe in einem Eingabefeld direkt daneben haben (soll vorher unsichtbar sein.
Wichtig ist das es mit PHP funktioniert und nur ein Formular benötigt.
Meine bisherigen Versuche sind an der Kombination Javscript/PHP gescheitert, weil ich diesen Erscheinungseffekt mit Javascript erzeugt habe, so aber nie die Variable übergeben konnte :(((
Vielleicht hat der ein oder andere eine Idee.
Danke im Vorraus
mfg Schneidwui
Hallo,
Dieses Feld mit JS zu erzeugen ist schon richtig, das absenden des formulars macht ja dann wieder ein submit button, du brauchst also diesem feld nur einen namen zu geben, den du php seitig weiterverarbeiten kannst (in db schreiben oder sonst was)
Oder willst du das der input in dem extra feld im pulldown menü erscheint ?
Dann kommt es drauf an ob die werte dieses Pulldown feldes statisch sind, oder was wahrscheinlicher ist, aus einer datenqulle (zb. DB oder CSV datei) kommen.
Bei letzerem würde ich es so machen das du mit javascript diesen wert ins pulldown menü hinzufügst, mit einer ID die du normalerweise nicht haben kannst... zb. 99999999 oder du verwendest einen string.
Dau brauchst dazu aber auch noch ein formularfeld indem du speicherst wie dieser wert heisst. (also was zwischen <option></option> steht) das erreichst du in dem du ein hidden feld anlegst, und dieses per javascript füllst.
zb. <input type="hidden" name="newvalue" value="">
.... document.form.newvalue.value="dein neuer wert" (oder so ähnlich, siehe selfhtml -> javascript -> formulare)
auf der php seite siehst du dann als erstes nach ob $newvalue (bzw $_REQUEST("newvalue") ) gesetzt ist, und nicht leer ist, wenn ja -> schreib den wert in deine datenquelle und hohl dir die ID dafür wenn die ID des ausgewählten dropdowns 99999999 oder ein von dir gewählter string ist, überschreibst du den value mit dem, ID werd den dir deine datenquelle gegeben hat.
lg
Ludwig
PS: ich rede immer von datenquellen, meine aber meistens eine DB, ich code jede kleinigkeit über eine DB, und verwende keine files, weil es einfach keinen sinn macht *g*
Erstmal danke für die schnelle & kompetente Antwort..
hmm..das Problem ist..ich lasse es nicht wirklich erzeugen sondern erscheinen..das ist das Hauptproblem.
ich habe einen 2.Layer mit einem 2.Formular in dem das Eingabefeld ist. Und dieses Layer platziere ich dann dort wo ich ihn haben will..
ich weiss das das keine Musterlösung ist..aber ich sah keine andere..
und das Problem war ich kam halt nicht an diesen Variablenwert heran, ich hatte ihn am Ende zwar in einer JS-Variable, aber bekam ihn nicht in eine PHP-Variable. Weil es halt ein anderes Formular war.
also die Werte innerhalb des Pulldown-Menüs sind vorerst statisch! und der neue Wert soll auch vorerst :) nicht dahinein geschrieben werden.
Fragen!!!
OK. bisher hatte bei der Auswahlliste ein OnChange-Ereignis, mit einem JS-Funktionsaufruf, das wenn ein bestimmter Wert ausgewählt wurde, der 2. Layer eingeblendet wird, da müsste jetzt also das neue Feld im selben Layer/Formular kreiert werden, wie?????? *hilflosbin* :(
2.Beschreib mir doch biiittttttte nochmal wie ich dann den Wert aus dem Eingabefeld in den PHP-Teil bekomme??? ist übrigens ein PHP_SELF (also alles in einer Datei)
ich meine es muss eine Bedingung sein denk ich mal, das wenn im Auswahlmenü z.B. "manuell" selektiert wurde ($auswahl="manuell")
das er dann den Wert verwerfen soll..und stattdessen $auswahl2 (Eingabefeld-Wert)in die Datenbank schreiben soll.
Jo soweit mein Gedankengang *gg*
und kannst du mir nochmal weiterhelfen....BIITTTTTEEE
Fragen!!!
OK. bisher hatte bei der Auswahlliste ein OnChange-Ereignis, mit einem JS-Funktionsaufruf, das wenn ein bestimmter Wert ausgewählt wurde, der 2. Layer eingeblendet wird, da müsste jetzt also das neue Feld im selben Layer/Formular kreiert werden, wie?????? *hilflosbin* :(
..sorry dazu bin ich in js nicht fit genug.
2.Beschreib mir doch biiittttttte nochmal wie ich dann den Wert aus dem Eingabefeld in den PHP-Teil bekomme??? ist übrigens ein PHP_SELF (also alles in einer Datei)
ich meine es muss eine Bedingung sein denk ich mal, das wenn im Auswahlmenü z.B. "manuell" selektiert wurde ($auswahl="manuell")
das er dann den Wert verwerfen soll..und stattdessen $auswahl2 (Eingabefeld-Wert)in die Datenbank schreiben soll.
notiere unter dem select feld ein hidden feld OHNE value, das value setzt du mit javascript wenn in dem extrafeld was eingegeben wurde, und submit gedrückt wurde.
dieses feld kann den selben namen haben wie das select feld, da es in der reihenfolge nach dem select übertragen wird, überschreibt es den value des select feldes.
lg
Ludwig
Hallo
notiere unter dem select feld ein hidden feld OHNE value, das value setzt du mit javascript wenn in dem extrafeld was eingegeben wurde, und submit gedrückt wurde.
^^^^^^
Dann kann er es auch mit einem mehrstufigen Formular nur mit PHP-Auswertung machen.
Beispiel: 1. Formular: Auswahl per Radioboxen -a, -b, -c, -sonst
das ganze absenden und auf der nächsten Seite (2. Formular) wird ein Textarea angezeigt, das entweder die Auswahl der letzten Seite oder nix anzeigt.
<textarea name="termin1" cols="36" rows="3"><?php
if ((empty($termin)) OR ($termin=="sonst"))
{
}
else
{
echo $termin;
}
?></textarea>
Entspricht jetzt natürlich nicht hundertprozentig der Aufgabenstellung, wahrscheinlich nicht mal fünfzigprozentig, ist aber ein Denkansatz.
Tschüß, Auge