jQuery序列化数据与PHP $ _POST不匹配

时间:2016-01-30 18:43:05

标签: javascript php jquery ajax post

我有一个带有表格的页面 此表单具有不同的“工作表”,而用户浏览这些工作表时使用$.ajax从网站调用信息,并且表单会动态添加输入。

最后,我正在尝试将此表单数据发布到PHP文件中。

我不会转储我的整个代码,因为这是很多规则。但这是我用来发布的部分:

function postForm() {
    ...
    var data = $('form.feedForm').serialize();
    //console.log( data );      
    $.post('.../get.php?feed_add_save_feeding', data )
    .fail( function() {
        console.log('fail');
        ...
    })
    .success( function(data) {
        console.log('success');
        console.log(data);
        ...
    })
}

在我的PHP中,我添加了这个,看看会发生什么:

print_r( $_POST );

在我的控制台中查看,我看到这些参数是post:

dateType              now
date_d                30
date_m                1
date_y                2016
time_h                19
time_m                27
time_s                42
herd_num_animals      150
herd                  85
menu                  26
feedtype_total_value  3639
tWeight               3639
weightCumu            3637
supps_name[29]        Test voer 1
supps_price[29]       128
supps_dry_weight[29]  94
supps_weight[29]      1837
supps_name[34]        Test voer 6
supps_price[34]       18
supps_dry_weight[34]  70
supps_weight[34]      1800
supps_name[30]        Test voer 2
supps_price[30]       160
supps_dry_weight[30]  50
supps_weight[30]      1
user_id               1

PHP中的输出是

Array
(
    [dateType] => now
    [date_d] => 30
    [date_m] => 1
    [date_y] => 2016
    [time_h] => 19
    [time_m] => 27
    [time_s] => 42
    [herd_num_animals] => 150
    [herd] => 85
    [menu] => 26
    [feedtype_total_value] => 3639
    [tWeight] => 3639
    [weightCumu] => 3637
    [supps_name] => Test voer 6
    [supps_price] => 18
    [supps_dry_weight] => 70
    [supps_weight] => 1837
)

为什么所有提交的输入都不是通过PHP发生的?

(注意:由于尺寸的原因,我故意将代码留出来。如果我要添加一些或全部,请发表评论)

修改

这是完整的JS代码和呈现的HTML(从Firebug复制):

JSFiddle (just the code, not a working demo)

1 个答案:

答案 0 :(得分:0)

我看到你发送了几个数组,输出中显示了正确的数组键

在像supps_name[29]这样的帖子体中发送的变量将是php中的数组

is_array($_POST['supps_name'])// true

您的html输入应该看起来像

<input name="supps_name[]">

OR与定义的键

<input name="supps_name[1]">