首页 > 解决方案 > 在PHP中获取相同字符串的不同值

问题描述

我在表单中有类别复选框。当复选框被更改时,从通过ajax提交并获取PHP中的值。

//形式

foreach($somethings and $something){
    <input class="input_sale_category" type="checkbox" name="category" value="something->value" />`
}

我获取表单数据并通过 ajax 提交

      $('.input_sale_category').click(function() {
        var formData = $('#filter_sale_form').serialize();

        jQuery.ajax({
          type: 'GET',
          url: myurl,
          data: formData
          
          success: function(response) {
            console.log(response);
          },
          error: function (request, status, error) {
            alert(request.responseText);
          }
        });
      });

在 PHP 中,我将输入字段作为字符串

category=nexus-chair-offer&category=office-desks&category=office-storage

我试图获取categoryusing的输入值explodeparse_str但无法获取的所有值category

parse_str($str, $output);

var_dump($output);

我怎样才能做到这一点?正则表达式似乎是一种选择,但我不擅长正则表达式。

标签: phpajax

解决方案


问题出在您的 html 代码中,您在所有输入标签中都使用了相同的“名称”属性这只会将 1 值沙到后端。

像这样改变你的输入标签

foreach($somethings and $something){
<input class="input_sale_category" type="checkbox" name="category[]" value="something->value" />`
}

也检查这个答案,它可能会有所帮助, Get checkbox values using checkbox name using jquery

您还可以手动获取值并将其传递给 ajax 请求的数据

var checkboxes_value = []; 
   $('.input_sale_category').each(function(){  
        //if($(this).is(":checked")) { 
        if(this.checked) {              
             checkboxes_value.push($(this).val());                                                                               
        }  
   }); 
//checkboxes_value will be array of checked checkboxes

                         

推荐阅读