Javascript 选中所选事件和提交按钮的复选框
我刚刚使用ajax在多个复选框上完成了一个小项目。可以在此处找到演示:。但现在我想使用提交按钮作为过滤器选项。所以现在,在选中多个复选框并单击sumbit按钮后,手机数据库中应该只更改它。有什么帮助吗?谢谢这是我的密码: Index.phpJavascript 选中所选事件和提交按钮的复选框,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我刚刚使用ajax在多个复选框上完成了一个小项目。可以在此处找到演示:。但现在我想使用提交按钮作为过滤器选项。所以现在,在选中多个复选框并单击sumbit按钮后,手机数据库中应该只更改它。有什么帮助吗?谢谢这是我的密码: Index.php <body> <h1>Phones database</h1> <table id="phones"> <thead> <tr>
<body>
<h1>Phones database</h1>
<table id="phones">
<thead>
<tr>
<th>ID</th>
<th>Brand</th>
<th>Model</th>
<th>Price</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<div id="filter">
<h2>Filter options</h2>
<div>
<input type="checkbox" id="Samsung" checked>
<label for="Samsung">Samsung</label>
</div>
<div>
<input type="checkbox" id="iPhone" checked>
<label for="iPhone">iPhone</label>
</div>
<div>
<input type="checkbox" id="HTC" checked>
<label for="HTC">HTC</label>
</div>
<div>
<input type="checkbox" id="LG" checked>
<label for="LG">LG</label>
</div>
<div>
<input type="checkbox" id="Nokia" checked>
<label for="Nokia">Nokia</label>
</div>
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
function makeTable(data){
console.log(data);
var tbl_body = "";
$.each(data, function() {
var tbl_row = "";
$.each(this, function(k , v) {
tbl_row += "<td>"+v+"</td>";
})
tbl_body += "<tr>"+tbl_row+"</tr>";
})
return tbl_body;
}
function getPhoneFilterOptions(){
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.id);
}
});
return opts;
}
function updatePhones(opts){
$.ajax({
type: "POST",
url: "submit.php",
dataType : 'json',
cache: false,
data: {filterOpts: opts},
success: function(records){
$('#phones tbody').html(makeTable(records));
}
});
}
var $checkboxes = $("input:checkbox");
$checkboxes.on("change", function(){
var opts = getPhoneFilterOptions();
updatePhones(opts);
});
$checkboxes.trigger("change");
</script>
</body>
</html>
电话数据库
身份证件
品牌
模型
价格
过滤器选项
三星
苹果手机
宏达电
LG
诺基亚
函数makeTable(数据){
控制台日志(数据);
var tbl_body=“”;
$.each(数据,函数(){
var tbl_row=“”;
$。每个(此,函数(k,v){
tbl_行+=“+v+”;
})
tbl_正文+=“”+tbl_行+“”;
})
返回tbl_体;
}
函数getPhoneFilterOptions(){
var opts=[];
$复选框。每个(函数(){
如果(选中此项){
选择推送(this.id);
}
});
返回选项;
}
函数更新电话(opts){
$.ajax({
类型:“POST”,
url:“submit.php”,
数据类型:“json”,
cache:false,
数据:{filterOpts:opts},
成功:功能(记录){
$('#phones tbody').html(makeTable(records));
}
});
}
var$复选框=$(“输入:复选框”);
$checkbox.on(“更改”,函数(){
var opts=getPhoneFilterOptions();
更新电话(opts);
});
$checkbox.trigger(“变更”);
submit.php
<?php
require 'Database.php';
#### TEMP SET NAMES FÜR UTF8 ###################################################
include 'Json.php';
$opts = $_POST['filterOpts'];
$tmp = array();
foreach ($opts as $opt) {
$tmp[] = '"'.$opt.'"';
}
$query =
'SELECT mobile_phone.id, name, model, price FROM mobile_phone INNER JOIN brand ON brand_id = brand.id WHERE name IN ('.implode(",", $tmp).')';
$result = mysql_query($query);
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
echo json_encode($data);
?>
此行
数据:{filterOpts:opts},
更改为
data: {filterOpts: $(':checked').val('id')}
这应该通过模型ID。这是一个令人讨厌的SQL注入漏洞。。。