简体   繁体   中英

Empty Array AJAX

So I have searched around a bit in hopes of finding a solution to my problem, but have had no luck. I am basically trying to pass data into the ajax function, but when it passes it to my php file it only returns an empty array (Yes there are a few topics on this, couldn't find any to fit my needs) , here is the console output: Array ()

Its odd because just before the ajax function I log the data, and it prints out each section with no problems.The posting URL is accurate, works fine straight from my form. I have tried to use response instead of data passed through the function, but no luck their either. Thanks in advance!

Here is the JS file

$(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;

  });
});

And here is my PHP

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

print_r($_POST);

?>

UPDATE: I have tried to add method:"POST" to my ajax function and it still seems to be printing out blank arrays... Maybe I should convert everything to GET?

jQuery ajax() uses GET as default method. You need to mention method: POST for POST requests.

method (default: 'GET')

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

Or you can also use post() .

EUREKA!!! Wow, the mistake was much simpler than I thought, figured it out solo! Thank you everyone for the tips! Finally got it

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM