jQuery将多维表单数据发送到PHP脚本

问题描述 投票:1回答:1

我使用jquery进行发布操作。我有多个复选框,如下所示。我想发布一个多维数组,但是操作失败。当我认为存在JavaScript错误时,我在哪里做错了?

<input type="checkbox" name="options[0][menu][1]" checked="" autocomplete="off" value="Mantar">
<input type="checkbox" name="options[1][menu][1]" checked="" autocomplete="off" value="Soğan">
<input type="checkbox" name="options[3][menu][1]" checked="" autocomplete="off" value="Mısır">

如上所述,我将数组保留在名称中。我想发布此,但是options[]字段刚刚发布。 name = "options[0][menu][1]"如何完整发布此部分?

   $('.add_cart').click(function(){
    var csrfName = $('.txt_csrfname').attr('name');
    var csrfHash = $('.txt_csrfname').val();
    var product_id      = $(this).data("productid");
    var product_name    = $(this).data("productname");
    var product_price   = $(this).data("price");
    var quantity        = $('#' + product_id).val();
    var image           = $(this).data("image");
    var options         = [];
    var resimli         = [];
    var coklu           = [];
    var menu            = [];
    $(':checkbox:checked').each(function(i){
      options[i] = $(this).val();
    });

    $('input.menu').each(function(i){
      menu[i] = $(this).val();
    });
    $('select option:selected').each(function(i){
      coklu[i] = $(this).val();
    });
    $(':radio:checked').each(function(i){
      resimli[i] = $(this).val();
    });
    if(quantity != '' && quantity > 0)
    {
     $.ajax({
      url:"<?php echo base_url(); ?>cart_controller/add",
      method:"POST",
      data:{product_id:product_id, product_name:product_name, product_price:product_price, quantity:quantity, menu:menu, options:options, coklu:coklu, resimli:resimli, image:image, [csrfName]:csrfHash},
      dataType: 'json',
      success:function(response)
      {
       $('.txt_csrfname').val(response.token);
       iziToast.success({
        title: 'Sepete Eklendi',
        message: 'Ürün Sepetinize Eklendi!',
        position: 'topRight',
      });
       $('.sepetim').load("<?php echo base_url(); ?>cart_controller/sepet");
       $('.sepetsay').load("<?php echo base_url(); ?>cart_controller/sepetsay");
     }
   });
   }
   else
   {
     iziToast.error({
      title: 'Dikkat!',
      message: 'Lütfen Ürün Adetini Seçin!',
      position: 'topRight',
    })
   }
 });

结果选项名称;

Array ( [0] => Mantar [1] => Zeytin [2] => Domates [3] => Mısır [4] => Turşu ) 

我想要的结果;

Array ( [1] => Array ( [menu] => Array ( [1] => Mantar ) ) [2] => Array ( [menu] => Array ( [1] => Zeytin ) ) [3] => Array ( [menu] => Array ( [1] => Domates ) ) [4] => Array ( [menu] => Array ( [2] => Mısır ) ) [5] => Array ( [menu] => Array ( [2] => Turşu ) 

javascript php jquery arrays
1个回答
0
投票

当你做:

options[i] = $(this).val();

您失去了多维的结构。

您可以尝试类似的操作:

$(':checkbox:checked').each(function(i){
      options.push({menu: { 1: $(this).val() }});
});
© www.soinside.com 2019 - 2024. All rights reserved.