2016-04-29 6 views
0

Also habe ich ein bisschen gesucht in der Hoffnung, eine Lösung für mein Problem zu finden, aber ich hatte kein Glück. Ich versuche im Grunde, Daten in die Ajax-Funktion zu übergeben, aber wenn es es an meine PHP-Datei übergibt, gibt es nur ein leeres Array (Ja, es gibt ein paar Themen auf diesem, konnte nicht finden, meine Bedürfnisse), hier ist die Konsole-Ausgabe: Array()Empty Array AJAX

Es ist seltsam, weil kurz vor der Ajax-Funktion ich die Daten protokollieren, und es druckt jeden Abschnitt ohne Probleme aus.Die URL der Veröffentlichung ist genau, funktioniert gut direkt aus meinem Formular. Ich habe versucht, eine Antwort anstelle von Daten zu verwenden, die durch die Funktion geleitet wurden, aber auch kein Glück. Vielen Dank im Voraus! Hier

ist die JS-Datei

$(document).ready(function() { 
    $('form.ajax').on('submit', function() { 

    var that = $(this), 
     url = that.attr('action'), 
     type = that.attr('method'), 
     data = []; 

    that.find('[name]').each(function(index, value) { 
     var that = $(this), 
     name = that.attr('name'), 
     value = that.val(); 

     data[name] = value; 
    }); 
    console.log(data); /////THIS LINE HERE ACTUALLY PRINTS DATA 
    $.ajax({ 
     url: url, 
     type: type, 
     data: data, 
     success: function(data) { 
     console.log(data); 
     } 
    }); 

    return false; 

    }); 
}); 

Und hier ist mein PHP

<?php //removed the issets and other checkers for ease of readability 

print_r($_POST); 

?> 

UPDATE: Ich habe versucht, Methode hinzufügen: "POST" zu meiner Ajax-Funktion und es scheint immer noch zu sein leere Arrays ausdrucken ... Vielleicht sollte ich alles nach GET konvertieren?

+2

'methode:" POST "' fehlt in ajax – Thamilan

+0

Ahh. Versucht dies, und es druckt immer noch ein leeres Array aus. –

+0

Ich habe eine Theorie, aber es muss getestet werden. An der Spitze Ihrer PHP-Datei, wenn Sie var_dump (file_get_contents ("php: // input")) setzen, was ist dann die Ausgabe? – aaronofleonard

Antwort

1

jQueryajax() verwendet GET als Standardmethode. Sie müssen method: POST für POST Anfragen erwähnen.

Methode (Standard: 'GET')

$.ajax({ 
    url: url, 
    method: "POST", 
    type: type, 
    data: data, 
    success: function(data) { 
     console.log(data); 
    } 
}); 

Oder Sie auch post() verwenden können.

+0

Also der Keyword-Typ soll meine Methode sein. Gerade hinzugefügt Methode zu meiner Ajax-Funktion, zusammen mit Post und es ist immer noch Drucken ein leeres Array. –

0

EUREKA !!! Wow, der Fehler war viel einfacher als ich dachte, fand es alleine heraus! Vielen Dank für die Tipps! Schließlich bekam es

$('form.ajax').on('submit', function() { 

var that = $(this), 
    url = that.attr('action'), 
    type = that.attr('method'), 
    data = {}; // THIS NEEDS TO BE CHANGED TO BRACKETS!!