简体   繁体   English

使用jquery ajax mysql和php通过checkbox复制filtet数据

[英]filtet data by checkbox using jquery ajax mysql and php

I have a group of dynamic checkbox of location 我有一组动态复选框的位置

<?php foreach($qry_2 as $v2) { ?>
    <li class="checkbox">
        <label>
            <input type="checkbox" class="i-check" id="locality" name="locality[]" value="<?php echo $v2['outlet_locality'] ?>"><?php echo $v2['outlet_locality'] ?>
            <small class="location"><?php echo '('.$v2['outletCount'].')' ?></small>
        </label>
    </li>
<?php } ?>

and I got aprox 10 input checkbox values I want to filter the content according to the checkbox(multiple select) using jQuery and send data to filter.php to retrive as json data 我有一个aprox 10输入复选框值,我想使用jQuery根据复选框(多次选择)过滤内容,并将数据发送到filter.php以作为json数据检索

$('input#locality').change(function () {
    var locality = [];
    $(':checkbox:checked').each(function (i) {
        locality.push($(this).val());
    });

    $.post("php/filter.php", {name: locality}, function(data){

    });
});

when I checked the checkbox I got indivisual value not an array, so how can I get the array value of multiple checkbox checked to send to and retrive data from filter.php my filter.php 当我选中复选框时,我得到的是indivisual值而不是数组,那么如何才能获得多个复选框的数组值,以便发送到filter.php我的filter.php并从中检索数据

$qry_1 = array();

$checkbox1 = $_POST['name'];  
$chk = "";   
foreach($checkbox1 as $chk1)  
{  
    $chk .= $chk1.",";  
}
$sql_1 = "SELECT  p.id,p.outlet_id,p.offer_title,p.original_price,p.discount,p.discount_price,p.offer_image,p.offer_details,o.outlet_id,o.outlet_title,o.outlet_locality,o.segment_type FROM products as p,outlets as o WHERE p.outlet_id=o.outlet_id AND o.outlet_locality='$chk'"; 
$qry_1 = sel_qry($sql_1);
foreach($qry_1 as $v)
{
    $filterloc[] = array('title'=>$v['outlet_title'],'cat_id'=>$v['outlet_id']);
}
echo json_encode($filterloc);

i am getting null value do guide me 我得到零价值指导我

Try moving this 尝试移动这个

$.post("filter.php", { name: locality[i] }, function (data) {
  alert(data);
});

to outside of the each. 到每个之外。 ie: 即:

$('input#locality').change(function () {
  var locality = [];
  $(':checkbox:checked').each(function (i) {
    locality.push($(this).val());
    alert(locality[i])
  });

  $.post("filter.php", { name: locality }, function (data) {
    alert(data);
  });
});

(Assuming your backend expects an array, of course) (假设你的后端需要一个数组,当然)

Try this code. 试试这个代码。

HTML HTML

<li class="checkbox">
   <label>
       <input type="checkbox" class="i-check" id="locality" name="locality[]" value="<?php echo $v2['outlet_locality'] ?>"><?php echo $v2['outlet_locality'] ?>
       <small class="location"><?php echo '('.$v2['outletCount'].')' ?></small>
   </label>
</li>

JS JS

$('input.i-check').change(function () {
    var locality = [];
      $(':checkbox:checked').each(function (i) {
            locality.push($(this).val());
      });

      $.post("jquery1.php", {name: locality}, function(data){

      });
});

Instead of id locality , used class i-check 使用类i-check代替id locality

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM