2011-03-25 49 views
1

我使用jQuery的阿贾克斯发送HTML格式的,当我的形式发送到我的PHP文件,并使用print_r($_POST)看什么被罚,这是结果:如何解析发送到ajax的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代码,但它的作品,所以我认为它不会真的neccessary这里,但仍..

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

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

虽然你可以解析,你应该修复JavaScript,因此它不会首先对数据进行双重编码。 – Quentin 2011-03-25 21:49:08

+0

任何想法如何?请? – 2011-03-25 21:49:58

回答

5

而不是data: {'data': formData}所有你需要做的是data: formData

1

我看到两件事情是错误的:

你需要序列化表单数据:$(形式).serialize()

你所得到的就OT她的结尾是你正常的$ _POST数组

+0

我相信''dataType''是php脚本的响应,而不是发送给它的内容。除非我在这里非常错误,否则你错了。另外,我正在序列化我的数据,它在我粘贴的代码的第一行。又错了? – 2011-03-25 21:56:52

+0

是的,你所需要的所有jquery文章都是3个参数url,type&data – salmane 2011-03-25 21:57:57