使用ajax将复选框多个数组传递给php

时间:2017-10-15 14:00:44

标签: javascript php jquery arrays ajax

我尝试将复选框数组传递给ajax。我的HTML代码:

   {foreach from =$allTaskTypes key=typeId item=type}
                  <div class="mainDivTaskType">
                      <input class="task_types" value="{$typeId}" name="task_types_category[{$typeId}][]" type="checkbox">{$type.type_name}<br>
                      {if $type.subtags neq ''}
                          <div class="taskTypesLeadNoteTagDiv">
                              {foreach from =$type.subtags key=tagId item=tag}
                                  <input  value="{$tag.id}" class="task_types" type="checkbox" name="task_types_category[{$typeId}][task_types_tags][]">{$tag.name}<br>
                              {/foreach}
                          </div>
                      {/if}
                  </div>
              {/foreach}

因此,html的例子是:

<div class="mainDivTaskType">
    <input class="task_types" value="42" name="task_types_note_category[42][]" type="checkbox">
u7utu
<br>
</div>
<div class="mainDivTaskType">
<input class="task_types" value="43" name="task_types_note_category[43][]" type="checkbox">
New1
<br>
<div class="taskTypesLeadNoteTagDiv">
<input class="task_types" value="28" name="task_types_note_category[43][task_types_tags][]" type="checkbox">
tag1
<br>
<input class="task_types" value="29" name="task_types_note_category[43][task_types_tags][]" type="checkbox">
tag2
<br>
</div>
</div>

我需要将数组从js传递给php。 如果我使用提交,我会得到如下数组:

    Array
(
    [42] => Array
        (
            [0] => 42
        )

    [43] => Array
        (
            [task_types_tags] => Array
                (
                    [0] => 28
                    [1] => 29
                )

        )

)

如何使用ajax生成这样的数组?

我试过了:

   var array = [];
      $('.task_types:checked').each(function() {
          array.push($(this).val());
      });

但这是错误的数组格式,如[42,28,29]

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

试试这个:

$(".task_types:checked").serialize();