| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

11-12-2008, 12:22
|
|
Lavingstar
Member
|
|
Registriert seit: Oct 2004
Beiträge: 208
|
|
Wert in Eingabefeld behalten nach nicht erfolgreichem Submit
Hallo,
ich habe ein Formular innerhalb einer php/mysql Datenbank in dem einige Pulldownmenüs und Textfelder drin sind.
3 dieser Textfelder sind Pflichtfelder - und wenn diese nicht ausgefüllt werden, erscheint eine Fehlermeldung
und das Formular wird neu aufgerufen und alle Felder wieder "resettet".
Jetzt soll es aber so sein, dass der Wert der Felder behalten wird, sodass man nicht wieder alles neu eintippen muss, wenn man mal vergessen hat ein Pflichtfeld auszufüllen.
Derzeit sieht der Code so aus:
PHP-Code:
<td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="" />
<span class="meldung"><b></b></span>
</td>
Um jetzt den Wert zu behalten hab mal folgendes probiert:
PHP-Code:
<td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="
<?php
if ($fehler = 'value'){
echo $beanst;
}
?>" />
<span class="meldung"><b></b></span>
</td>
Da behält er zwar den Wert im Textfeld drin - aber das Textfeld selbst kann an jeder beliebigen Stelle angeklickt und beschrieben werden (siehe angehängter Screenshot) ...
Weiss da jemand eine Lösung?
|

11-12-2008, 12:43
|
|
Mercury1987
Registrierter Benutzer
|
|
Registriert seit: Apr 2007
Ort: Furschweiler
Beiträge: 79
|
|
es gibt noch n attribut für text-felder: readonly
|

11-12-2008, 12:54
|
|
Lavingstar
Member
|
|
Registriert seit: Oct 2004
Beiträge: 208
|
|
Zitat:
Original geschrieben von Mercury1987
es gibt noch n attribut für text-felder: readonly
|
Und was soll mir das bringen? Damit sperr ich mir doch nur das Feld, das niemand eine Eingabe machen kann, was ja nicht den gewünschten Effekt bringt ...
|

11-12-2008, 12:57
|
|
Mercury1987
Registrierter Benutzer
|
|
Registriert seit: Apr 2007
Ort: Furschweiler
Beiträge: 79
|
|
was ist denn sonst deine frage? ich hab daraus gelseen, dass du nit willst, dass jemand reinschreiben kann. ich nehm dann mal an, dass es dir nit passt, dass da soviel abstand dazwischen ist, oder was???
|

11-12-2008, 13:08
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Was du vorhast nennt sich "Affenformular".
Google gibt gerne Auskunft.
|

11-12-2008, 13:08
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
if ($fehler = 'value') ist immer TRUE!
|

11-12-2008, 13:10
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
Zitat:
Original geschrieben von onemorenerd
if ($fehler = 'value') ist immer TRUE!
|
erstens das ud zweitens könntest Du auch ein register_globals Problem haben, das kann man nicht 100% erkennen, da Du nur ein code fragment gepostet hast
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

11-12-2008, 13:13
|
|
Lavingstar
Member
|
|
Registriert seit: Oct 2004
Beiträge: 208
|
|
Zitat:
Original geschrieben von Mercury1987
was ist denn sonst deine frage? ich hab daraus gelseen, dass du nit willst, dass jemand reinschreiben kann. ich nehm dann mal an, dass es dir nit passt, dass da soviel abstand dazwischen ist, oder was???
|
Ich quote hier einfach nochmal mein Anliegen, weiss aber wirklich nicht was daran nicht verständlich ist:
Zitat:
|
Jetzt soll es aber so sein, dass der Wert der Felder behalten wird, sodass man nicht wieder alles neu eintippen muss, wenn man mal vergessen hat ein Pflichtfeld auszufüllen.
|
In Kurzform nochmals der Ablauf:
- Formular ausfüllen
- 1 Pflichtfeld aus Versehen vergessen auszufüllen
- Abschicken klicken
- Fehlermeldung erscheint und Formulareingaben werden zurückgesetzt / gelöscht
Und DAS ( Formulareingaben werden zurückgesetzt / gelöscht) soll nicht passieren
- es soll eine Fehlermeldung erscheinen "Pflichtfelder wurden nicht ausgefüllt" aber die bereits eingegeben Daten sollen in den Textfeldern erhalten bleiben.
|

11-12-2008, 13:29
|
|
krel
Registrierter Benutzer
|
|
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
|
|
die ganzen Leerzeichen kommen daher, dass du hinter dem Value auch noch ne neue Zeile anfängst, wenn du das so machst, sollte es funktionieren, wobei es dabei keinerlei Prüfungen gibt
PHP-Code:
<td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="<?php echo $_POST['beanst']; ?>" />
<span class="meldung"><b></b></span>
</td>
|

11-12-2008, 13:37
|
|
Lavingstar
Member
|
|
Registriert seit: Oct 2004
Beiträge: 208
|
|
Zitat:
Original geschrieben von krel
die ganzen Leerzeichen kommen daher, dass du hinter dem Value auch noch ne neue Zeile anfängst, wenn du das so machst, sollte es funktionieren, wobei es dabei keinerlei Prüfungen gibt
PHP-Code:
<td class="formfeld"><input type="text" name="beanst" size="40" tabindex="2"value="<?php echo $_POST['beanst']; ?>" />
<span class="meldung"><b></b></span>
</td>
|
Das war des Rätsels Lösung ! :-)
Vielen Dank für die Hilfe!
|

11-12-2008, 14:34
|
|
Lavingstar
Member
|
|
Registriert seit: Oct 2004
Beiträge: 208
|
|
Nachtrag als Hinweis: Funktioniert allerdings nur bei Textfelder, nicht bei Pulldownmenüs, die Options werden mit dieser Methode nicht übernommen.
|

11-12-2008, 15:07
|
|
Patrick_PQ
Registrierter Benutzer
|
|
Registriert seit: Aug 2003
Beiträge: 480
|
|
Bei größeren Formularen wird das auf die Dauer ziemlich lästig - QuickForm oder Zend_Form bieten da eine gute Alternative - schau mal rein.
Für Zend_Form kannst du z.B. mit $form=new MyForm() ein komplettes Formular erstellen - welches du natürlich zuvor definiert hast - und dann einfach mit $form->populate($data) Werte übergeben - und fertig.
Filter und Validator sind bei beiden auch gleich mit drin, so dass sich Eingabeprüfung, Fehlermeldung und Vorbelung mit Default bzw. Usereingaben fast wie von selbst erledigt.
Gruß
Patrick
|

11-12-2008, 15:13
|
|
Lavingstar
Member
|
|
Registriert seit: Oct 2004
Beiträge: 208
|
|
Zitat:
Original geschrieben von Patrick_PQ
Bei größeren Formularen wird das auf die Dauer ziemlich lästig - QuickForm oder Zend_Form bieten da eine gute Alternative - schau mal rein.
Für Zend_Form kannst du z.B. mit $form=new MyForm() ein komplettes Formular erstellen - welches du natürlich zuvor definiert hast - und dann einfach mit $form->populate($data) Werte übergeben - und fertig.
Filter und Validator sind bei beiden auch gleich mit drin, so dass sich Eingabeprüfung, Fehlermeldung und Vorbelung mit Default bzw. Usereingaben fast wie von selbst erledigt.
Gruß
Patrick
|
Ui ... sieht auf den ersten Blick schonmal schön aus ... danke für den Tip!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|