Support » Allgemeine Fragen » Problem bei Formular mit Bild-Upload

  • Hallo,

    ich habe ein Formular erstellt und die Daten(Text) mittels AJAX an admin-ajax.php weitergeleitet und dann in der functions.php bearbeitet und in die Datenbank gespeichert.

    Soweit hat alles funktioniert.

    Jetzt muss ich das Formular aber um einen Bild-Upload erweitern. Das Bild muss ebenfalls in der Datenbank hinterlegt werden. Nach meiner Recherche habe ich festgestellt, dass ich die Daten mittels Ajax in einem FormData-Element übergeben soll sowie beim AJAX-Call contentType: false und processData:false setzten muss.
    Wenn ich das jedoch mache, komme ich nicht mehr in die richtige Methode, da vermutlich admin-ajax.php die richtige Methode nicht findet.

    Hier der Code vom Template:

    
    jQuery('.register_form').submit(function(){
            var filetoUpload = jQuery('#fileToUpload').prop('files')[0];
            var form_data=new FormData();
            form_data
    .append("file",filetoUpload);
    var vornameFeld = jQuery('.register_form_left_vorname').val();
    
    form_data.append('action', 'saveSchueler');
    form_data.append('vorname', vornameFeld);
    
    jQuery.ajax({
    type: "POST",
    url: "/wp-admin/admin-ajax.php",
    contentType: false,
    processData:false,
    data: {
    form: form_data,
    },
    success: function(response) {
    console.log("Success!!");
    console.log(response);
    },
    error: function(response) {
    console.log("Error!!");
    console.log(response);
    }
    });
    

    functions.php

    
    function saveSchueler() {
    echo "Ich habe die functions.php erreich";
    }
    
    add_action('wp_ajax_saveSchueler', 'saveSchueler');
    add_action('wp_ajax_nopriv_saveSchueler', 'saveSchueler');
    

    Das Ergebnis bzw. der Rückgabewert von AJAX/jQuery ist aber immer 0.

    Ich hoffe ihr könnt mein Problem nachvollziehen und habt einen Rat für mich 🙂

    Vielen Dank im Voraus!

    • Dieses Thema wurde geändert vor 6 Jahren, 6 Monaten von milang2807.
Ansicht von 1 Antwort (von insgesamt 1)
  • Hey,

    statt
    data: {form: form_data,},

    solltest du
    data: form_data
    setzen. Du willst ja nicht „form“ als Parameter übergeben, sondern „action“, „vorname“ usw.

    Viele Grüße
    Christian

Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Problem bei Formular mit Bild-Upload“ ist für neue Antworten geschlossen.