如何解析发送到ajax的POST数据?

时间:2011-03-25 21:48:02

标签: php jquery ajax arrays

我正在使用jquery向ajax发送一个html表单,当我将表单发送到我的php文件并使用print_r($_POST)查看发送的内容时,结果如下:

Array
(
    [data] => user_first_name=&user_last_name=&user_birthday_day=&user_birthday_month=&user_birthday_year=&user_addr_street=&user_ad
dr_street_no=&user_addr_city=&user_addr_zip=&user_addr_country=1&user_contact_phone=&user_contact_email=&user_knows_us_from=
)

基本上,我得到了正在做的事情,但我不太确定将此字符串拆分为数组的最佳方法是什么。我知道如何使用explode('&', $data),但它只会将我的字符串分解为带有值的数组,但是数字键。 我需要$key => $value看起来像[user_first_name] => 'Peter'而不是[1] => 'user_first_name=Peter'

你如何解决这个问题?

编辑:这是我的ajax代码,但它有效,所以我认为这不是必要的,但仍然是..

  var formData = $('#form-registracia').serialize();

  $.ajax({
     url: '/ajax/registracia.php',
     type: 'POST',
     dataType: 'text',
     data: {'data':formData},
     success: function(data){
        // something will be here
     }
  });

2 个答案:

答案 0 :(得分:5)

而不是data: {'data': formData}您需要做的只是data: formData

答案 1 :(得分:1)

我看到两件事是错的:

您需要序列化表单数据:$(form).serialize()

你得到的另一端是普通的$ _POST数组