Input Felder einem Formular zuweisen

Schon festgestellt? Dem Forum sind gerade alle Interaktionsmöglichkeiten genommen. :(

Mehr dazu unter: Abstimmung über das Forum

  • Jetzt aber mal ne andere Frage:


    Ich überlege ob es sich lohnt die Datenbankansprache für Daten lesen, Daten speichern, Daten Änderungen speichern je eine Funktion zu bauen, damit ich die äußere Form jeweils schon in der Funktion stehen habe, und dann die Werte für die einzelnen Bestandteile über Array's dann in die Funktion gebe.


    Lohnt sich das?

  • Damit würdest Du wieder HTML und PHP/Daten mischen.
    Besser wäre mehrere Funktionen wie zB

    PHP
    1. // bsp meeting:
    2. $meeting = getMeetingById($id);
    3. $meetingsCollection = getMeetingsByUserName($userName, $from, $to);
    4. // ...
    5. $meetingHtml = getMeetingHtml($meeting);
    6. $meetingsCollectionHtml = getMeetingHtml($meetingsCollection);
  • Naja, aber das ist dem Browser/User ja egal.
    Wenn Du den Nutzer fragst, wird er es als Seite bezeichnen.


    Verwechsle nicht Script/Datei mit Seite =)

    Stimmt schon, die sollte man nicht verwechseln.
    Aber der User weiß ja auch nicht, das die Seite neu aufgerufen wird, wenn er die Eingabe abschließt mit Return oder klick auf den Button. Somit ist auch nicht jedem klar, das er vom Prinzip her eine neu Seite aufruft, wenn er auf einen der Statusbuttons klickt.

    Damit würdest Du wieder HTML und PHP/Daten mischen.
    Besser wäre mehrere Funktionen wie zB

    Also damit sagst du ja das man für solche Dinge wie Lesen aus der Datenbank, schreiben in die Datenbank, Ändern der Daten in der Datenbank Funktionen schreiben sollte, um es sich leichter zu machen.
    Du gehst nur noch weiter, das du zweckgebundene Funtkionen dafür schreiben möchtest. Also zu einem bestimmten Anlass einen Funktion.


    Habe ich hoffentlich soweit richtig verstanden!


    Mein Gedanke ist aber eine universelle Funktion z.B. fürs Lesen aus der Datenbank zu schreiben, damit ich mich nicht mehr um die äußere Form kümmern muss.


    Der SQL für eine Abfrage sieht so aus:



    SELECT
    `...`,
    `...`,


    FROM
    `...`
    WHERE
    ...


    Wenn ich jetzt anstatt der '...' jeweils ein Array reinsetze, damit ich dann von außen über Arrays Werte in die Funktion eingebe, dann bräuchte ich mich nicht mehr um die äußere Form zu kümmern:
    fuktion DB_lesen ($datenblattfelder, $datenblatt, $datenselektion)
    {
    SELECT
    foreach $datenblattfelder


    FROM
    $datentabelle


    WHERE
    foreach $datenselektor


    where $datenselektion is ....}


    Die Array's in der Webseite werden dann so gefüllt:


    $datenblattfelder = feld1
    $datenblattfelder.= feld2
    $datenblattfelder.= feld3

    $Datentabelle = tabellenblatt

    $datenselektion = selektor1
    $datenselektion = selektor2
    $datenselektion = selektor3

    Und dann die Funktion aufgerufen:


    DB_lesen($datenblattfelder, $datentabelle, $datenselektor )

    So in etwa fürs grobe Verständnis.

    Somit wäre diese Lesefunktion aus der DB universell und ich bräuchte mich nur noch die Arrays in der Webseite zu füllen, um dann die Funktion auszuführen. Damit hätte ich durch die Füllung der Arrays, jede Situation und Anforderung abgefangen die du durch mehrere Funktionen abfangen möchtest.Und ich bräuchte fürs Lesen nur einen Funktion, fürs schreiben nur einen Funktion und fürs Ändern nur eine Funktion!


    An deinem Vorschlag, der sicher richtig und gut ist, stört mich einfach, dass es praktisch bei jedem auslesen aus der Datenbank eine andere Anforderung gibt.
    Und man weis nie, ob sich diese Anforderung an einer anderer Stelle noch mal ergibt (also lohnt sich jetzt dafür eine Funktion oder nicht?).

  • Hallo zusammen!


    @ cotton: Du kennst die Hintergründe meiner Anfrage am Besten!


    Also: Ich habe meine Seite so aufgebaut, das ich zwei Formulare hintereinander habe.
    Im ersten Formular sind Eingabefelder als Bilder, durch die der Seiteninhalt gesteuert wird. (Es wird immer wieder die Selbe Seite aufgerufen, aber je nach dem welcher Button geklickt wurde, wird ein anderer Seiteninhalt angezeigt.
    In dem zweiten Formular sind dann wiederum Tabellen mit Eingabefelder ($_POST) hinterlegt.
    Habe ich alle Daten eingegeben, muss zum speichern ein Button aus der ersten Form geklickt werden.


    Und da hab ich ein Problem: Die Variablen sind bis vor dem klicken auf den speichern Button alle gefüllt. Klicke ich den Button, sind alle Variablen zum speichern alle leer, und nix kommt beim SQL - Befehl an. Wobei ich getestet habe, dass der SQL funktioniert.


    Kennt jemand eine Lösung dahingehend, dass die Variablen Werte nicht immer beim Neuaufbau wieder gelöscht werden, ohne über die $_SESSION zu gehen?

  • Wenn Die Form (beide) ausgegeben werden,
    nutzt Du einfach:

  • Also so ähnlich hatte ich es auch:



    PHP
    1. if ($_POST['form_submitted'] == "daten_details")
    2. {
    3. $ueberschrift = !empty($_POST['ueberschrift'])?$_POST['ueberschrift']:'';
    4. $text = !empty($_POST['text'])?$_POST['text']:'';
    5. }


    Hierbei hatte ich nur noch daran gedacht, das die Daten nur geändert werden, wen Sie aus der zweiten Form kommen!



    PHP
    1. echo"<tr><td><h4>Überschrift:</h4></td></tr>";
    2. echo"<tr><td><input type="text" name="ueberschrift" class="feldinhalt" value="".clearstring($ueberschrift)."" ></td></tr>";


    Aber wenn ich dann auf den Button Sichern aus dem ersten Form klicke, löschen sich die Inhalte.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von willi356 ()

  • Es wird immer nur eine Form angeschickt. Also bekommt PHP immer nur die Daten in $_POST von der einen Form.
    Wenn Du beide gleichzeitig auzeigst/ausfüllen lässt, dann wird eine "leiden" - keer ausgehen :D

  • Ja hab verstanden, und auch so schon vermutet.
    Dann bleibt ja nur die Werte in $_SESSION zu parken, bis sie dann verarbeitet werdden.


    Oder gibt es dafür eine andere Lösung?