Variablenwert abfragen

  • Hallo,
    ich habe ein Problem, über das einige von euch nur mitleidig lächeln werden:
    Ich möchte den Wert von Variablen aus einem Form abfragen.
    Wenn ich z.B. das Form aufgerufen habe und versehentlich sofort den Sende-Button
    anklicke, habe die Variablen $_POST[„vor“] sowie die Variablen $_POST['nach'] keinen Inhalt.
    Genau das will ich im PHP Teil erfragen und später mit einem JavaScript Dialogfeld darauf hinweisen.
    Also, mit If $_POST['vor'] == "" oder if (isset($_POST['vor']) : ' ' habe ich keinen Erfolg.
    Zum besseren Verständnis nachstehend die Quelltexte der beiden Seiten:

    HTML



    PHP



    Ich hoffe sehr das eine(r) von euch mir die richtige Syntax geben kann.
    Gefunden habe ich sie in „Fachbüchern“ und im Netz nicht.
    Gruß
    willytyp

  • Frag einfach die Variablen selber ab:

    if ($vor=='') {echo 'Vorname fehlt'}
    if ($nach=='') {echo 'Nachname fehlt'}

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.

  • solche Beispiele gibt es doch in Massen im Netz - m
    1. also auf Javascript würde ich dabei nicht verlassen
    2. Du kannst auch als einfachste Lösung einfach <input name = "nach" required /> ins Input schreiben
    3. ein <input type="reset" ..sollte man gar nicht verwenden

    4. PHP du musst deinem submit auch einen Namen geben name="senden"
    5. eingabe.php

    das geht natürlich auch alles umfangreicher und besser - aber funkt

    Gruß modem-kind



  • 4. PHP du musst deinem submit auch einen Namen geben name="senden"


    Sorry, aber das ist Quatsch! Man muss nicht, man kann, denn man kann auch jedes anderen Feld beim isset nehmen.

    • Offizieller Beitrag

    Sorry, aber das ist Quatsch! Man muss nicht, man kann, denn man kann auch jedes anderen Feld beim isset nehmen.

    Jup... Ich nutze dazu iin meinem System ein Hidden-Field.
    Der submit hat bei nur historisch bedingt das name-Attribut.

    Grundsätzlich, um für die Prüfung irrelevante Felder außen vor zu lassen, setze ich meine Formulardaten immer in Arrays, bspw.:

    HTML
    <form name="frmName" method="post">
        <input type="hidden" name="frm[id]" value="...">
        <input type="text" name="frm[data][firstname]" placeholder="Vorname" required>
        <input type="text" name="frm[data][lastname]" placeholder="Nachname" required>
        <input type="submit" name="frmSubmitted" value="Senden">
    </form>


    Da mich auf der Prozessseite nur die Textfelder interessieren kann ich einfach alle filtern:

    PHP
    $aPostData = array_filter( $_POST['frm']['data'] );


    In $aPostData stecken nun alle Felder, die Inhalt übermittelt bekommen haben.
    Es reicht für diesen Fall nun vollkommen aus, zu prüfen, ob die Anzahl der Felder in $aPostData gleich der in $_POST['frm']['data'] ist.
    Auf diese Weise ist es auch vollkommen egal, wie viele Formularfelder man innerhalb von $_POST['frm']['data'] verwendet, die Prüfung haut ohne Anpassung immer hin.

    Nur als kleine Anregung, man muss es natürlich nicht so machen...

    Gruß Arne

  • Die empfohlende Seite ist prima

    - - - Aktualisiert - - -

    Mag sein, das es sie im Netz zu Hauf gibt. Allerdings habe ich als Quereinsteiger von VBA Excel & Access so meine Probleme mit der Syntax.
    Dennoch meinen Dank