使用 jquery ajax mysql 和 php 按复选框过滤数据
Posted
技术标签:
【中文标题】使用 jquery ajax mysql 和 php 按复选框过滤数据【英文标题】:filtet data by checkbox using jquery ajax mysql and php 【发布时间】:2016-07-21 01:29:40 【问题描述】:我有一组动态的位置复选框
<?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 ?>
我得到了大约 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)
);
);
当我选中复选框时,我得到了单独的值而不是数组,那么我怎样才能获取选中的多个复选框的数组值以发送到 filter.php
并从中检索数据
我的过滤器.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);
我得到空值请指导我
【问题讨论】:
通过在 jquery/javascript 中使用唯一 id 来避免在循环中引用 html 元素。在您的情况下,它的 ``id="locality"。要么动态生成这些 id,要么更好地使用一个类。如果您进行此更改,那么它可能会解决您的问题。 【参考方案1】:尝试移动它
$.post("filter.php", name: locality[i] , function (data)
alert(data);
);
到每个之外。即:
$('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);
);
);
(当然,假设您的后端需要一个数组)
【讨论】:
它发送 name[]:location1 name[]:location2 那么我如何在我的 filter.php @geo1302 中获取这个值 $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']); 回声 json_encode($filterloc);我有空值请指导我@geo1302 对不起,我对 PHP 的了解几乎没有。我在 Javascript 部分提供了帮助,但是通过一些搜索,您可以像这样访问数组: $myArray = $_REQUEST['name']; ?>【参考方案2】:试试这个代码。
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
$('input.i-check').change(function ()
var locality = [];
$(':checkbox:checked').each(function (i)
locality.push($(this).val());
);
$.post("jquery1.php", name: locality, function(data)
);
);
使用类i-check
代替id locality
【讨论】:
以上是关于使用 jquery ajax mysql 和 php 按复选框过滤数据的主要内容,如果未能解决你的问题,请参考以下文章
复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql
使用 PHP、MySQL、Jquery 和 Ajax 创建 5 星评级系统
使用 jquery 和 ajax 显示来自 mysql 的数据