weixin_33691700 2020-02-14 07:54 采纳率: 0%
浏览 45

Ajax表单数据传递

How can I pass the form data on my PHP file? I have tried the below solution but it was not worked for me. I need to pass all checkboxes on my PHP function.I have tried but not getting the perfect value that I need?

Please check the issue and guide me where I was wrong.

<form id="filterForm" method="post">

          <div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Beer Brands
            </button>
            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
              <ul>
                <li><input class="clickBox" type="checkbox" name="beer_brands[]" value="valu1" />Test</li>
                <li><input class="clickBox" type="checkbox" name="beer_brands[]" value="valu2"/>Test</li>
                <li><input class="clickBox" type="checkbox" name="beer_brands[]" value="value3"/>Test</li>
              </ul>
            </div>
          </div>

          <div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Locations
            </button>
            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
              <ul>
                <li><input class="clickBox" type="checkbox" name="locations[]" value="value4" />Test</li>
                <li><input class="clickBox" type="checkbox" name="locations[]" value="value5"/>Test</li>
                <li><input class="clickBox" type="checkbox" name="locations[]" value="value6"/>Test</li>
              </ul>
            </div>
          </div>

          <div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Sort By
            </button>
            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
              <ul>
                <li><input class="clickBox" type="checkbox" name="sort_by[]" value="value7" />Test</li>
                <li><input class="clickBox" type="checkbox" name="sort_by[]" value="value8"/>Test</li>
                <li><input class="clickBox" type="checkbox" name="sort_by[]" value="value9"/>Test</li>
              </ul>
            </div>
          </div>

        </form>

JQuery

<script type="text/javascript">
jQuery(document).ready(function(){

  jQuery(".clickBox").click(function(e){ 

      var b_b_Array  = []
      var location_Array  = []
      var sort_by_Array  = []

      jQuery('.clickBox').each(function ()
      {
          //debugger;
          jQuery("input[name='beer_brands[]']").each( function () {
              if(jQuery('input[name="beer_brands[]"]').is(':checked')) {
                b_b_Array.push(jQuery(this).val());
              }
          });

          jQuery("input[name='locations[]']").each( function () {
              if(jQuery('input[name="locations[]"]').is(':checked')) {

                location_Array.push(jQuery(this).val());
              }
          });

          jQuery("input[name='sort_by[]']").each( function () {
              if(jQuery('input[name="sort_by[]"]').is(':checked')) {

                sort_by_Array.push(jQuery(this).val());
              }
          });

      });

      console.log(b_b_Array);
      console.log(location_Array);
      console.log(sort_by_Array);

      var ajaxurl = "<?php bloginfo('url');?>/wp-admin/admin-ajax.php";

      jQuery.ajax({
          url: ajaxurl,
          type : 'post',
          data: {
            'action':'all_give_aways_filter',
            'data' : jQuery("filterForm").serialize(),
          },
          success : function( response ) {
              console.log(response);
              // jQuery("div#errMsg").css({'background-color':'white','color':'red'});
              // jQuery("div#errMsg").html(response);
          }
      });

  });

});

</script>

Please Help me to solve this issue.

  • 写回答

1条回答 默认 最新

  • elliott.david 2020-02-14 08:27
    关注

    Can you try replace this JavaScript. Hope this help you

    function get_checkbox_value(){
        var array = [];
        jQuery(':checkbox:checked').each(function(i, _this){
          var checkboxname = jQuery(_this).attr('name'); checkboxname = checkboxname.replace('[]','');
          array[checkboxname]=[];
          array[checkboxname].push(jQuery(this).val());
        });    
        return array;
    }
    
    jQuery(document).ready(function(){
    
        jQuery("#filterForm").submit(function(e){
            e.preventDefault();
    
            var formdata = get_checkbox_value();
            var ajaxurl = "<?php bloginfo('url');?>/wp-admin/admin-ajax.php";
    
          jQuery.ajax({
              url: ajaxurl,
              type : 'POST',
              data: {
                'action':'all_give_aways_filter',
                'data' : formdata,
              },
              success : function( response ) {
                  console.log(response);
              }
          });
      });
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同