PHP oder Javascript / Ich suche eine Lösung
El-Diablo
- javascript
-1 Christoph Schnauß0 Joachim0 El-Diablo- php
0 wahsaga0 Tobias Müller
Ich suche eine Lösung für folgendes Problem:
Ich habe ein Anmeldeformular erstellt. Wenn man auf den Submit Button klickt wird per PHP überprüft ob alle Eingaben stimmen. Falls dies nicht der Fall ist wird das Script erneut aufgerufen; mit den vorher gemachten Eingaben. Wenn alle Eingaben gültig sind hat das ganze Formular eine andere "action" (alles per php).
Nun habe ich das so gemacht, dass wenn das Script erneut geladen wird, alle gültigen Eingaben mit dem Attribut "readonly" versehen sind und auch änders aussehen. Daneben ist ein Button "Ändern" um die gültigen Eingaben evtl. doch zu ändern. Jetzt tritt mein Problem auf. Eigentlich soll über den Button das Script erneut aufgerufen werden und das Eingabefeld bei dem auf Ändern geklickt wurde, soll wieder ohne dem Attribut "readonly" angezeigt werden. Da aber alle Eingaben korrekt sind führt das Formular meine zweite Aktion aus.
Die Lösung des Problems wäre ja eigentlich beim Ändern Button eine "onClick" Aktion zu erstellen. Aber php lässt sich in diesem Falle nicht anwenden, oder? Und mit Javascript weiss ich keine Lösung. Kann man mit Javascript ebenfalls Variablen weitergeben?
hallo,
Die Lösung des Problems wäre ja eigentlich beim Ändern Button eine "onClick" Aktion zu erstellen. Aber php lässt sich in diesem Falle nicht anwenden, oder?
Doch, natürlich. Du mußt ja auch für das "readonly" bereits unterschiedliche Funktionen gebaut haben, eventuell über Parameter. Was hindert dich daran, eine weitere Funktion mit anderen Parametern zu bauen?
Und mit Javascript weiss ich keine Lösung.
Weil es keine gibt. Bleib bei PHP.
Kann man mit Javascript ebenfalls Variablen weitergeben?
Jaein. Nur: in deinem Fall würde das einen "Mix" aus einer serverseitigen und einer cleintseitigen Technologie bedeuten. Es ist aber weit eleganter, das alles von einem einzigen PHP-Script erledigen zu lassen. Wenn dir irgendwas nicht ganz klar ist, kannst du ja mal die relevanten Teile deines PHP-Scripts herschreiben.
Grüße aus Berlin
Christoph S.
hallo,
Die Lösung des Problems wäre ja eigentlich beim Ändern Button eine "onClick" Aktion zu erstellen. Aber php lässt sich in diesem Falle nicht anwenden, oder?
Doch, natürlich. Du mußt ja auch für das "readonly" bereits unterschiedliche Funktionen gebaut haben, eventuell über Parameter. Was hindert dich daran, eine weitere Funktion mit anderen Parametern zu bauen?
Aber dann müsste ich es einrichten das eine PHP-Variable beim "onClick" definiert wird und das geht doch nicht!? Weil PHP wird ja schon vor dem Laden der Seite aufgerufen.
Ich hab den Quelltext mal stark gekürtzt aber er dürfte mein Problem gut darstellen. Mal kurz eine andere Frage. Kann man das Attribut "readonly" direkt in CSS einbinden?
Hi,
Wenn alle Eingaben gültig sind hat das ganze Formular eine andere "action" (alles per php).
Verstehe ich nicht. Du pruefst die Eingaben per PHP, gibst aber auch _nach_ erfolgreicher Validierung nocheinmal das Formular aus, nur um die Formaction zu aendern?
Erscheint mir muehsam. Eleganter: Variablen in die Session und per redirect _gleich_ zum naechsten Script.
Oder: Simple html-Ausgabe zur Überpruefung der Eingaben im gleichen Script und Back-button zur Korrektur. Variablen derweil in Session oder hidden inputs speichern.
Deine JS-Ansaetze erscheinen mir unnoetig kompliziert und fehleranfaellig. Was hindert den User daran, nach der Validierung dann nochmals Eingaben fehlerhafte zu aendern?
Gruesse, Joachim
Hi,
Wenn alle Eingaben gültig sind hat das ganze Formular eine andere "action" (alles per php). Verstehe ich nicht. Du pruefst die Eingaben per PHP, gibst aber auch nach erfolgreicher Validierung nocheinmal das Formular aus, nur um die Formaction zu aendern?
Erscheint mir muehsam. Eleganter: Variablen in die Session und per redirect gleich zum naechsten Script.
Oder: Simple html-Ausgabe zur Überpruefung der Eingaben im gleichen Script und Back-button zur Korrektur. Variablen derweil in Session oder hidden inputs speichern.
Deine JS-Ansaetze erscheinen mir unnoetig kompliziert und fehleranfaellig. Was hindert den User daran, nach der Validierung dann nochmals Eingaben fehlerhafte zu aendern?
Gruesse, Joachim
ich wollte ein Formular erstellen indem sich User anmelden können. Wenn sie auf Absenden klicken erscheint das Formular erneut um die Eingaben zu besätigen. Sollten Dinge ungültig sein (z.B. die beiden Passwörter stimmen nicht überein") kann man diese Ändern. Alle korrekten Angaben sind mit "readonly" versehen. Diese soll man aber auch noch ändern können wenn man auf "Ändern" klickt.
hi,
bitte fullquote unterlassen, danke.
Alle korrekten Angaben sind mit "readonly" versehen. Diese soll man aber auch noch ändern können wenn man auf "Ändern" klickt.
das ist doch ein widerspruch in sich - wozu denn dann bitte readonly, wenn man sie doch noch ändern können soll?
gruß,
wahsaga
http://mitglied.lycos.de/noneedforanickname//Informatik/Registration.php
Dann schaut es euch an. ;)
hi,
das ist doch ein widerspruch in sich - wozu denn dann bitte readonly, wenn man sie doch noch ändern können soll?
Nö, das ist nicht unbedingt ein Widerspruch in sich. Ich finde die Idee sogar ausgesprochen elegant. Sie entspricht ungefähr dem, was es hier in diesem Forum selbstverständlich auch gibt: wenn du auf "normalem" Weg auf ein posting antwortest, bleibt der posting-Titel "readonly". Du mußt schon einmal irgendwas klickern, damit du den Titel ändern kannst.
Genau dasselbe Prinzip scheint "El-Diablo" zu verfolgen, und das finde ich, wie gesagt, durchaus gut.
Ich habe allerdings ein paar andere Probleme mit den weiter unten im Thread angegebenen Codeschnipseln. Schau da mal nach und sag was dazu, ich lasse dir den Vortritt.
Grüße aus Berlin
Christoph S.
Hallo El-Diablo,
ich wollte ein Formular erstellen indem sich User anmelden können. Wenn sie auf Absenden klicken erscheint das Formular erneut um die Eingaben zu besätigen. Sollten Dinge ungültig sein (z.B. die beiden Passwörter stimmen nicht überein") kann man diese Ändern. Alle korrekten Angaben sind mit "readonly" versehen. Diese soll man aber auch noch ändern können wenn man auf "Ändern" klickt.
Verstehe ich dich richtig, dass im Prinzip bei einem KLickj auf "Ändern", das readonly-Attribut verschwinden soll? Wenn ja, dann könntest du das Element, auf das man zum Ändern klicken soll mit einem derartigen onclick-Event versehen:
onclick="document.forms[0].elements['bla'].removeAttribute('readonly')"
Du musst das natürlich noch den Namen deines Formulars und der Felder anpassen und am besten nach dem Ausführen das Ändern-Element verschwinden lassen, aber prinzipiell sollte dir das so klappen.
MfG, Mülli
onclick="document.forms[0].elements['bla'].removeAttribute('readonly')"
Erstmal danke für euer Bemühen. Kann mir jemand erklären was ich in die eckigen Klammern setzen muss?
hi,
onclick="document.forms[0].elements['bla'].removeAttribute('readonly')"
Erstmal danke für euer Bemühen. Kann mir jemand erklären was ich in die eckigen Klammern setzen muss?
http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines
gruß,
wahsaga
Leider funktioniert eure Lösung nicht. Ich befürchte das PHP da irgentwie zwischen pfuscht.
Hallo El-Diablo,
Leider funktioniert eure Lösung nicht. Ich befürchte das PHP da irgentwie zwischen pfuscht.
Wieso sollte da PHP dazwischen funken? Es ist doch dem JavaScript-Interpreter vollkommen egal, ob es sich um eine statische oder mit PHP erzeugte Seite handelt.
Wie sieht der betreffende Code denn jetzt genau aus? Welche Browser machen Probleme? Welche Fehlermeldungen werden ausgespuckt?
Möglich wäre, dass der IE bei removeAttribute() gern noch einen zweiten Parameter in Form von 'true' (Groß-/Kleinschreibung wird beachtet) oder 'false' (Groß-/Kleinschreibung ist egal) hätte. Falls es der IE ist, der die Zicken macht, probiere es also mal so aus: removeAttribute('readonly','false')
MfG, Mülli
Ich habe euch doch bereits hier den Code gezeigt. Bei euren Hilfelösungen passiert nichts. Das Attribut bleibt einfach stehen. Ich kann es aber lieber selber versuchen, anstatt hier dumme Antworten zu bekommen.
http://forum.de.selfhtml.org/?t=100348&m=614847
Hallo,
Ich habe euch doch bereits hier den Code gezeigt.
Du sollt aber den Code wie er _nach_ den Änderungen aussieht nochmal posten - aber bitte richtig formatiert (->einrücken!). Und da dein Problem eher ein js-Problem ist, wäre der Code der im Browser ankommt interessanter als der php-Code ...
in </faq/#Q-19> steht wie man hier einen Link macht.
Grüße aus Nürnberg
Tobias
Ach ich habe den Fehler gefunden. Er lag bei mir. :) habe das mit dem Attribut False verwendet.
Trotzdem hab ich noch zwei Fragen:
1. Kann man ein Attribut wie "Readonly" ebenfalls in vordefinierte Arten von Eingabefelder in CSS reinpacken?
2.Kann man anstatt removeAttribut(readonly) auch "Class=Beispiel" entfernen?
Nochmal vielen Dank.
hi,
Leider funktioniert eure Lösung nicht. Ich befürchte das PHP da irgentwie zwischen pfuscht.
ich fürchte, dass El-Diablo pfuscht.
aber wieso zum henker postet man in so einem falle nicht mal ein wenig vom verwendeten code, anstatt immer nur ein sinnfreies "funzt nich!!1" ...?
gruß,
wahsaga