Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使复选框在另一个设备中被选中后保持选中状态_Php_Checkbox - Fatal编程技术网

Php 如何使复选框在另一个设备中被选中后保持选中状态

Php 如何使复选框在另一个设备中被选中后保持选中状态,php,checkbox,Php,Checkbox,我在尝试使复选框在另一个设备中保持选中状态时遇到了一些问题,我能够使复选框在浏览器中保持选中状态,因此在浏览器刷新后,复选框保持选中状态,那么我知道如何做到这一点吗 这是我的代码,首先我包含了dcConnect.php以连接到数据库,然后我从数据库中检索数据以显示在网站上 <?php include_once("dcConnect.php"); $dcData = "SELECT dcID, dcServerName, dcServerAge, dcServerGender, dcSer

我在尝试使复选框在另一个设备中保持选中状态时遇到了一些问题,我能够使复选框在浏览器中保持选中状态,因此在浏览器刷新后,复选框保持选中状态,那么我知道如何做到这一点吗

这是我的代码,首先我包含了dcConnect.php以连接到数据库,然后我从数据库中检索数据以显示在网站上

<?php
include_once("dcConnect.php");

$dcData = "SELECT dcID, dcServerName, dcServerAge, dcServerGender, dcServerMarital FROM dcUsers";

$result = $link->query($dcData);

if($result->num_rows >0){
    echo"<table><tr><th></th><th>ID</th><th>Name</th><th>Age Group</th><th>Gender</th><th>Marital Status</th></tr>";
    while($row = $result->fetch_assoc()){
        echo"<tr><td><input type='checkbox' id='". $row["dcID"] ."' name='". $row["dcID"] ."' value='off' ></input></td><td>". $row["dcID"] ."</td><td>". $row["dcServerName"] ."</td><td>". $row["dcServerAge"] ."</td><td>". $row["dcServerGender"] ."</td><td>". $row["dcServerMarital"] ."</td></tr>";




    }
    echo "</table>";

    }else{
        echo"no results";

    }

$link->close();



?>

看起来您当前正在使用cookies保存复选框的状态。Cookie存储在客户端(即用户的计算机)而不是服务器端,这就是为什么您看不到跨设备保留的复选框状态

为了在数据库中保存和检索复选框状态,您需要在数据库表中添加一个额外的列。按照上面的模式,这可能是一个名为lke“dcChecked”的布尔列

然后,当您打印输入时,您需要执行以下操作:

<input type="checkbox" <?php if($row['dcChecked']) { print 'checked' } ?></input>

看起来您当前正在使用cookies保存复选框的状态。Cookie存储在客户端(即用户的计算机)而不是服务器端,这就是为什么您看不到跨设备保留的复选框状态

为了在数据库中保存和检索复选框状态,您需要在数据库表中添加一个额外的列。按照上面的模式,这可能是一个名为lke“dcChecked”的布尔列

然后,当您打印输入时,您需要执行以下操作:

<input type="checkbox" <?php if($row['dcChecked']) { print 'checked' } ?></input>

身份证件
名称
年龄组
性别
婚姻状况
选中>
没有结果
下面是上下文中的语法。我还对其进行了重构,使其更具可读性


身份证件
名称
年龄组
性别
婚姻状况
选中>
没有结果

下面是上下文中的语法。我还对其进行了重构,使其更具可读性

你所说的“另一个设备”是什么意思?我看到你在使用Javascript来保存cookies(复选框)以保持选中状态。但你想让他们在其他设备上也保持签入状态?指的是电脑、电话,无论什么都有不同的用户代理,甚至是同一设备中的另一个浏览器?在这种情况下,我会将每个用户的值存储在“数据库会话”中,而不是cookies中(仅当用户登录时),除非您想检查IP而不是@David Lavieriea,我可以知道这是怎么做到的吗?@John Hascall yes在另一台计算机或电话中调用另一台设备,如David Lavieri所说的“另一台设备”是什么意思?我看到您正在使用Javascript为他们保留cookies(复选框)以保持选中状态。但你想让他们在其他设备上也保持签入状态?指的是电脑、电话,无论什么都有不同的用户代理,甚至是同一设备中的另一个浏览器?在这种情况下,我会将每个用户的值存储在“数据库会话”中,而不是cookies中(仅当用户登录时),除非您想检查IP而不是@David Lavieriea,我可以知道这是怎么做到的吗?@John Hascall是另一台电脑或电话中的另一台设备,如David Lavieri所说,感谢您的回复,我在while语句中输入您向我建议的代码时遇到一些问题,我想知道您是否可以向我展示正确的语法,我希望我没有要求太多,真的很抱歉。您好,感谢您的回复,我在while语句中输入您建议我的代码时遇到了一些问题,我想知道您是否可以向我展示正确的语法,我希望我没有要求太多,真的很抱歉。嗨,Nathan,我非常感谢您的回复,我已经改成了这种语法。我只想确认这段代码是否意味着有人必须更改数据库中的布尔值,才能使复选框保持选中状态。实际上,我希望在有人选中复选框时保持选中状态,而不是通过编辑数据库,因此我考虑提交一个表单,因此如果选中复选框,它将把布尔值更改为true,如果布尔值为true,复选框将保持选中状态,我想知道这是否可能。再次感谢您的回复:)嗨,奈杰尔,是的,为了让这段代码正常工作,您需要更新数据库中的值。如果尚未这样做,则需要创建一个提交处理程序,该处理程序将捕获表单值并使用它们更新数据库中的值。关于如何做到这一点的完整解释超出了我在评论中所能提供的范围,但是你可以在网上找到很多教程。这是我创建的一个视频教程,它应该能让你找到正确的方向:只是澄清一下——你不需要有人直接手动编辑数据库。这将使用提交表单时调用的PHP代码来完成。上面链接的视频教程应该能解释所有这些。嗨,Nathan,很抱歉这么晚才回复,我看到了建议的视频,不幸的是,它不是我想要的。我并没有试图向数据库中插入数据,我试图在提交表单后选中特定复选框时将布尔值更新为1,反之亦然,但我确实从教程中学到了一些东西:)嗨,Nathan,我非常感谢你的回复,我已经改用了这种语法。我只想确认这段代码是否意味着有人必须更改数据库中的布尔值,才能使复选框保持选中状态。实际上,我希望在有人选中复选框时保持选中状态,而不是通过编辑数据库,因此我考虑提交一个表单,因此如果选中复选框,则将布尔值更改为true,如果布尔值为true,则复选框将保持选中状态,我想知道这是否正确