【发布时间】:2012-03-28 11:47:38
【问题描述】:
当我点击“Asus”复选框时,结果是“Asus”的所有型号都带有所有“尺寸”,很好。但是当我同时点击“Asus”和“15''”复选框时,结果是所有这种尺寸的型号,包括“Acer”等等。它必须如何工作(至少在我的想象中:)) - 点击“Asus”和“15''”并获取仅与点击(选中)复选框相关的数据。
谢谢。
复选框:
<input type="checkbox" name="Acer"> Acer
<input type="checkbox" name="Asus"> Asus
...
<input type="checkbox" name="15.6"> 15''
<input type="checkbox" name="17"> 17''
JQuery/Ajax:
$("input[type=checkbox]").click(function() {
var ids = [];
$("input[type=checkbox]:checked").each(function() {
ids.push($(this).attr("name"));
});
ids = ids.join(",");
$.get("mysql.php", {q: ids},
function(result) {
$("div#output").html(result);
});
});
MySQL 查询:
$g = $_GET['q'];
if(isset($g)) {
$param = "" . str_replace(",", "','", $_GET['q']) . "";
$sql = "SELECT * FROM `notebook` WHERE `trademark` IN ('$param') OR `size` IN ('$param') ORDER BY `trademark`";
$query = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($query)) {
echo '<p>'.$row['trademark'].' = '.$row['size'].'</p>';
}
}
【问题讨论】:
-
在将
$_GET变量直接运行到 SQL 查询中之前,您可以先看看 xkcd.com/327
标签: jquery mysql ajax checkbox where-in