Alle Formularelemente über PHP ansprechen

jenno

Erfahrenes Mitglied
Gibt es eine Möglichkeit mit PHP alle Felder und Checkboxen und was noch dazugehört eines Formulares zu durchlaufen?

Es geht um Folgendes:
Ich habe mehrere Seiten mit Forms die sehr viele verschiedene Elemente enthalten. Alle Inhalte dieser Formularelemente sollen in eine Datenbank geschrieben werden und auch andersrum aus einer Datenbank wieder in die Felder gefüllt werden.

Da es ein enormer Schreibaufwand wäre, das alles per Hand zu machen, und zudem das Ganze auch ziemlich unwartbar würde, möchte ich das dynamisch machen.

Ich möchte mir eine Datenbanktabelle anlegen, in der unter anderem in einer Spalte alle Namen der Datenbankfelder stehen und in einer anderen Spalte die dazugehörigen Namen der Formularelemente.

Auf diese Weise kann ich mit einer kleinen Funktion alles automatisch füllen, bzw. in die Datenbank schreiben lassen.

Vorausgesetzt: Es gibt etwas, womit ich das gesamte Formular ansprechen kann.

Vielen Dank schon mal für Eure Gedanken!
 
Nein, ich glaube, das geht nicht.
Wenn ich zum Beispiel aus der Datenbank auslese und meine Formularelemente füllen möchte, dann steht ja nichts im $_POST Array. Das wird doch erst gefüllt, wenn das Formular abgeschickt wird. In diesem Fall rufe ich die Seite ja erst auf...
 
Hmm, dann vielleicht das:
PHP:
$iResult = mysql_fetch_array("SELECT `xyz` FROM `tabelle`; WHERE `id`=123");
$aInfo   = mysql_fetch_assoc($iResult);

foreach ($aInfo as $sName=>$sValue) {
    printf("<input type=\"text\" name=\"%s\" value=\"%s\"><br>\r\n", $sName, $sValue);
}
Meinst du das?
 
Grübel, denk, tüftel.

Nein, ich glaube, das hilft mir auch nicht weiter. Das Formular besteht ja schon.

Ich bräuchte eher sowas, was es auch in JavaScript gibt. Ein Array, in dem alle Elemente drin stehen, so dass man sie über dieses Array ansprechen kann, auf den Namen und den Value zugreifen kann.

Gibts sowas auch in PHP? Hab gehört, das zum Beispiel ASP sowas hat, deswegen dachte ich, PHP könnte ja vielleicht auch...
 
Du stattest die Formulare am Besten mit Platzhaltern aus

<input type="text" name="irgendwas" value="{VALUE}">

Und dann machsten str_replace(); oder halt preg_replace(); oder ereg_replace();
ganz wie Du willst :o)

Gruss Danilo
 
Original geschrieben von jenno
Grübel, denk, tüftel.

Nein, ich glaube, das hilft mir auch nicht weiter. Das Formular besteht ja schon.

Ich bräuchte eher sowas, was es auch in JavaScript gibt. Ein Array, in dem alle Elemente drin stehen, so dass man sie über dieses Array ansprechen kann, auf den Namen und den Value zugreifen kann.

Gibts sowas auch in PHP? Hab gehört, das zum Beispiel ASP sowas hat, deswegen dachte ich, PHP könnte ja vielleicht auch...

@jenno:

Um das Formular im Browser auszugeben musst du es an den Browser senden. Danach kannst du nicht mehr auf das Formular zugreifen und im Nachhinein Werte ändern. Das geht nur mit JavaScript bzw. Clientseitigen Scriptsprachen. PHP und ASP sind Serverseitige Sprachen und werden nur auf dem Server ausgeführt. Nachdem die Datei an den Browser geschickt wurde haben PHP und ASP keinen Zugriff mehr drauf.
 
Ja und in dem Moment in dem ich es an den Browser sende? Kann ich da schon bestimmte Formularelemente über php mitm Namen ansprechen
 
Die von u-Danilo angesprochene Methode, wird wohl am besten deinen Bedürfnissen genügen.
Die Formularelemente müssen mir mehr oder weniger hochzählbaren Platzhaltern ausgestattet werden und diese kannst du dann, bevor du die Seite endgültig an den Browser schickst, mit str_replace() oder preg_replace() ersetzen.

Auf ereg_replace würde ich nicht unbedingt setzen, da, so wie ich das sehe, diese einen mehr oder weniger proprietären Standard für die Suchmuster nutzt, wärend die preg_ Funktionen auf dem PCRE (Perl Compatible Regular Expressions) Standard aufbauen, der weiter verbreitet ist.
 
Zurück