Javascript 提交表单onchange复选框并更新mysql数据库
您可以使用Javascript 提交表单onchange复选框并更新mysql数据库,javascript,php,mysql,database,onchange,Javascript,Php,Mysql,Database,Onchange,您可以使用$con->query(“从用户选择id、状态”)获取所有可能的值,而不是通过$\u POST['chkStatus']循环这些值。然后,如果为相应的值设置了$\u POST['chkStatus'],则可以进行检查。此时将所有复选框值发送到服务器。您可以只发送感兴趣的值。快速而肮脏的解决方案: 将您的复选框拆分为单独的表单,并仅提交您需要的表单: <?php if(isset($_POST['chkStatus'])){ for ($i=0;$i<count($_
$con->query(“从用户选择id、状态”)
获取所有可能的值,而不是通过$\u POST['chkStatus']
循环这些值。然后,如果为相应的值设置了$\u POST['chkStatus']
,则可以进行检查。此时将所有复选框值发送到服务器。您可以只发送感兴趣的值。快速而肮脏的解决方案:
<?php
if(isset($_POST['chkStatus'])){
for ($i=0;$i<count($_POST['chkStatus']);$i++) {
$count = count($_POST['chkStatus']);
list($txtClientId, $txStatusValue) = explode('-', $_POST['chkStatus'][$i], 2);
$stmtChkStatus=$con->query("SELECT id,status FROM users WHERE id=$txtClientId");
$SRow = $stmtChkStatus->fetch();
if($SRow['status']!=$txStatusValue) {
if($txStatusValue==0) $stmtStatus=$con->query("UPDATE users SET status='0' WHERE id=$txtClientId");
else $stmtStatus=$con->query("UPDATE users SET status='1' WHERE id=$txtClientId");
}
}
}
?>
<html>
<body>
<dl>
<?php $stmtUsers=$con->query("SELECT id,status FROM users");
while($UsersRow = $stmtUsers->fetch()){
echo "<dt>$UsersRow[name]</dt>
<dd><input type='checkbox' name='chkStatus[]' value='$UsersRow[id]-$UsersRow[status]'";
if($CRow['status']==0) echo " checked";
echo " onchange='this.form.submit()'>
</dd>";
?>
</dl>
</body>
</html>
while($UsersRow=$stmtUsers->fetch()){
echo“$UsersRow[名称]
";
inclick
属性中,选中复选框的id或名称并添加到请求对于以后的帖子,请参阅,不要使用HTML格式化代码。您的代码容易受到SQL注入攻击。您应该使用或准备中所述的语句。有什么问题吗?我希望避免查询在所有记录中运行。如何运行SQL where id=onchange复选框?
while($UsersRow = $stmtUsers->fetch()){
echo "<dt>$UsersRow[name]</dt>
<form .... > <!-- Here required attributes -->
<dd><input type='checkbox' name='chkStatus[]' value='$UsersRow[id]-$UsersRow[status]'";
if($CRow['status']==0) echo " checked";
echo " onchange='this.form.submit()'>
</form>
</dd>";