Likes Likes:  0
  1. #1
    BloodSteam
    Gast

    PHP: isset( $_POST['submit'] ) funktioniert nicht.

    Moin,
    Ich verstehe es nicht wieso es nicht funktioniert.

    HTML:
    Code:
                   <section class="box">
                        <form method="POST" action="test.php">
                            <fieldset>
                                <legend>Registration</legend>
                                <div>
                                    <span>Username</span>
                                    <input type="text" name="username" required>
                                </div>
                                <div>
                                    <span>Email</span>
                                    <input type="email" name="email" required>
                                </div>
                                <div>
                                    <span>Password</span>
                                    <input type="password" name="password" required>
                                </div>
                                <div>
                                    <button class="cancel">Cancel</button>
                                    <input type="submit" name="submit" value="Signup">
                                </div>
                            </fieldset>
                        </form>
                    </section>
    test.php
    Code:
    if (isset($_POST['submit']){
       echo "submit";
    }else if( empty($_POST['submit'] ){
       echo "empty";
    }
    ^ Gibt mir "empty" aus und nicht "submit" wie gewollt.

    Wenn Ich ['email'] anstatt 'submit' benutze, wird mir "submit" angezeigt.
    Wieso? Bin Ich wirklich so dumm dass Ich es nicht verstehe?

    @edit
    Hab ein var_dump(); gemacht und es sieht so aus als würde mein Ajax call den "submit" nicht mitsenden.
    Code:
    array(3) {
      ["username"]=>
      string(9) "dwqwdqqwd"
      ["email"]=>
      string(17) "awdwda@wdqwdq.com"
      ["password"]=>
      string(6) "qwddwq"
    }
    Geändert von BloodSteam (19.01.2019 um 22:28 Uhr)

    • Bitte einloggen, um diese Anzeige auszublenden.
  2. #2
    Avatar von ZAM
    No Adblocker!

    Mitglied seit
    17.12.2008
    Ort
    Fürth
    Beiträge
    2.620

    AW: PHP: isset( $_POST['submit'] ) funktioniert nicht.

    Solltest du in deinem Ajax-Call serialize() (jQuery) für die Formfelder einsetzen, dann werden die type="submit"-Felder davon ignoriert, egal ob input oder button.
    Prüfe halt alternativ auf HTTP_METHOD oder gleich, ob es ein Ajax-Call mit POST-Values ist. Oder füge noch ein action-Feld hinzu.

    Bsp.:
    PHP-Code:
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && isset($_POST['irgendwas']) ) {    
    // Is ajax with post

    ... oder auf HTTP_X_REQUEST und HTTP_METHOD == 'POST'

    usw.
    Geändert von ZAM (23.01.2019 um 13:30 Uhr)
    Wartungsdrohne
    "Und wenn einer so ein Bug-Loch entdeckt, Granate rein!"
    ASRock X99 Extreme4 | i7-5820K @ 4,2 OC 1.24v | Crucial 4x4 GB DDR4-2400 | 4xSSD,2x2TB HDD | ZOTAC GTX 980 Ti AMP! Edition | ASUS Xonar DGX PCIe | be quiet! Straight Power 10-CM Modular | Fractal R5 Define

  3. #3
    BloodSteam
    Gast

    AW: PHP: isset( $_POST['submit'] ) funktioniert nicht.

    Danke, Ich nutze pures Javascript, bin nicht so der jQuery fan. Am Anfang ist es gut aber jetzt, meh.


    Code:
    function ajax(file,method,formData)
    {
        fetch(file, {
            method: method,
            body: formData
        }).then(function(res){
            return res.text();
        }).then(function(text){
            router(text);
        }).catch(function(error){
            console.error(error);
        })
    };
    Code:
    let forms = document.getElementsByTagName('form');
    for (var i = 0; i < forms.length; i++) {
        forms[i].addEventListener('submit', function(e){
            e.preventDefault();
            const formData = new FormData(this),
                    method = this.getAttribute('method'),
                    action = this.getAttribute('action');
            ajax(action,method,formData);
        });
    }

  4. #4
    Avatar von ZAM
    No Adblocker!

    Mitglied seit
    17.12.2008
    Ort
    Fürth
    Beiträge
    2.620

    AW: PHP: isset( $_POST['submit'] ) funktioniert nicht.

    Ich vermute mal, dass beim DOM "this" des Forms die type=submit-Elemente auch nicht "kennt".
    Wartungsdrohne
    "Und wenn einer so ein Bug-Loch entdeckt, Granate rein!"
    ASRock X99 Extreme4 | i7-5820K @ 4,2 OC 1.24v | Crucial 4x4 GB DDR4-2400 | 4xSSD,2x2TB HDD | ZOTAC GTX 980 Ti AMP! Edition | ASUS Xonar DGX PCIe | be quiet! Straight Power 10-CM Modular | Fractal R5 Define

    • Bitte einloggen, um diese Anzeige auszublenden.

Ähnliche Themen

  1. [PHP/SQL] INSERT mit PDO prepared funktioniert nicht.
    Von BloodSteam im Forum Programmierung und Webdesign
    Antworten: 17
    Letzter Beitrag: 07.02.2019, 12:39
  2. [PHP] Wieso funktioniert der "Redirect" nicht?
    Von BloodSteam im Forum Programmierung und Webdesign
    Antworten: 4
    Letzter Beitrag: 22.09.2018, 16:30
  3. PHP Form Action funktioniert nicht?
    Von Damianx3 im Forum Programmierung und Webdesign
    Antworten: 4
    Letzter Beitrag: 23.02.2016, 20:32
  4. Java <-> php-Skript funktioniert nur unter Linux
    Von Crymes im Forum Programmierung und Webdesign
    Antworten: 10
    Letzter Beitrag: 18.09.2013, 23:32
  5. SQL For Schleife mit PHP funktioniert nicht
    Von Krammer im Forum Programmierung und Webdesign
    Antworten: 5
    Letzter Beitrag: 19.03.2013, 12:01

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •