我有一个管理页面,列出了一系列的记录和每个记录旁边都有一个复选框,将其设置为“活动”状态。 每个复选框有被捆绑到数据库中的记录的ID就可以了值。 如果有人使用萤火他们的复选框的值很容易改变不同数量从而实现在数据库中的错误记录。
我不是这种情况发生,因为它只是一个管理页面,将只需要一个用户非常担心,我敢肯定,他不知道什么萤火..但只是好奇,柜面我碰到这个问题,在未来的上更面向公众的页面。
这是我目前刚这样你可以得到的我在做什么的想法的代码。
该HTML + PHP ..
<input type="checkbox" class="active" name="active<?php echo $id; ?>" id="active<?php echo $id; ?>" <?php if ($active == 1): ?>checked="checked"<?php endif; ?> value="<?php echo $id; ?>">
jQuery的AJAX ..
$("input.active").click(function() {
var loader = $(this).prev().prev();
$(loader).css("visibility","visible");
// store the values from the form checkbox box, then send via ajax below
var check_active = $(this).is(':checked') ? 1 : 0;
var check_id = $(this).attr('value');
console.log(check_active);
console.log(check_id);
$.ajax({
type: "POST",
url: "active.php",
data: {id: check_id, active: check_active},
success: function(){
$(loader).css("visibility","hidden");
}
});
return true;
});
这里是active.php ..
<?php
include("dbinfo.php");
mysql_connect($server,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$active = mysql_real_escape_string($_POST['active']);
$id = mysql_real_escape_string($_POST['id']);
$addEntry = "UPDATE entries SET active = '$active' WHERE id = '$id'";
mysql_query($addEntry) or die(mysql_error());
mysql_close();
?>