jQuery遍历表单并创建关联数组

时间:2019-12-11 21:36:42

标签: php jquery

我正在尝试遍历每个表单字段中的无序列表。 当我尝试将其追加到formdata并通过PHP处理它时,它只会返回

team: "[object Object],[object Object]"

JS在这里:

var arr = [];
$( '#team_list li' ).each(function(idx, li) {
    $team_name = $( li ).find('input[name="team_name"]').val();
    $team_role = $( li ).find('input[name="team_role"]').val();
    $team_citizen = $( li ).find('#country').val();
    $team_status = $( li ).find('#id_team_status').val();
    arr.push({ name: $team_name, role: $team_role, citizen: $team_citizen, status: $team_status, });
});

fd.append('team', arr );

1 个答案:

答案 0 :(得分:1)

FormData.append的第二个参数必须是字符串或文件;任何不属于这些的内容都将转换为字符串(请参见手册)。因此,您看到的是arr的字符串表示形式。您需要做的是对arr(使用JSON.stringify)进行JSON编码,即

fd.append('team', JSON.stringify(arr));

然后在您的PHP代码中可以编写

$teams = json_decode($_POST['team']);