2016-04-29 66 views
0

所以我搜索了一下,希望找到解決我的問題的方法,但都沒有運氣。 我基本上試圖將數據傳遞到ajax函數,但是當它傳遞給我的php文件時,它只返回一個空數組(這裏有幾個主題,找不到任何符合我需要的),這裏是控制檯輸出:Array()空陣列AJAX

它很奇怪,因爲就在ajax函數之前,我記錄了數據,並且它沒有任何問題地打印出每個部分。發佈URL是準確的,從我的表單直接工作正常。我試圖使用響應而不是通過函數傳遞的數據,但沒有運氣。 在此先感謝!

這裏是JS文件

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

    }); 
}); 

這裏是我的PHP

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

print_r($_POST); 

?> 

更新:我已嘗試添加方法:「POST」我的AJAX功能,它似乎仍然是打印空白數組...也許我應該將所有東西都轉換爲GET?

+2

方法:「POST」在ajax中丟失 – Thamilan

+0

啊。試了這個,它仍然打印出一個空的數組。 –

+0

我有一個理論,但它需要測試。在你的PHP文件的頂部,當你把var_dump(file_get_contents(「php:// input」)),那麼輸出是什麼? – aaronofleonard

回答

1

jQueryajax()使用GET作爲默認方法。您需要提供method: POSTPOST請求。

方法(默認: 'GET')

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

或者你也可以使用post()

+0

因此,關鍵字類型應該是我的方法。只是添加了方法到我的ajax函數,一起後,它仍然打印出一個空的數組。 –

0

EUREKA !!!哇,這個錯誤比我想象的要簡單得多,想出了獨奏!謝謝大家的提示!最後得到它

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

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