在codeigniter中使用 AJAX 的过滤器不工作

j8ag8udp  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(133)

我在codeigniter中用ajax创建了一个简单的过滤器,过滤器是一个复选框,用户可以在其中选择多个值,我的视图如下:

$(document).ready(function() {
        $('[name=types]').click(function(){

             $.ajax({
                url: '<?php echo base_url()?>homecontroller/filterp',
                type: 'POST',
                data: {types: $('input[name="types"]:checked')},
                error: function() {
                   alert('Something is wrong');
                },
                success: function(data) {
                  
                  $('#marble').html(data);
                }
             });
           });
    });
<div class="tm-form-field" id="p1">
  <?php foreach($types as $my1){?>
  <div>
    <input type="checkbox" name="types[]" value="<?=$my1->id?>" id="ty<?=$my1->id?>">
    <label for="ty<?=$my1->id?>"><?=$my1->name?></label>
  </div>
  <?php } ?>
</div>

我的控制器和模型是这样的:

public function filterp() {
  $types=$this->input->post('types');

    $data = $this->product->filterp($types);

    foreach($data as $product) {
    
    .......
    ......
    .....
    
    }
function filterp($types)
      {
       
        $this->db->where_in('types', $types);

          return $this->db->get('product')->result();
      }

这然而是不工作时,复选框被选中,niether我得到任何错误,任何人都可以请告诉我什么是错误的在这里,提前感谢

nuypyhwy

nuypyhwy1#

**注:-**在<input type ="checkbox" class="searchType">中添加class="searchType"
HTML代码:-

<div class="tm-form-field" id="p1">
  <?php foreach($types as $my1){?>
  <div>
    <input type="checkbox" name="types[]" value="<?=$my1->id?>" id="ty<?=$my1->id?>" class="searchType">
    <label for="ty<?=$my1->id?>"><?=$my1->name?></label>
  </div>
  <?php } ?>
</div>

脚本.js

<script type="text/javascript">
  $(document).ready(function() {
    $('.searchType').on('click', function() {
      var tmp = [];
      $("input").each(function() {
        if ($(this).is(':checked')) {
          var checked = ($(this).val());
          tmp.push(checked);
        }
      });
      //alert(tmp);

      $.ajax({
        url: "<?php echo base_url()?>homecontroller/filterp",
        method: "POST",
        data: { tmp:tmp },
        success: function(data) {
          //alert(data);
          $('#marble').html(data);
        }
      });
    });
  });
</script>

相关问题