Javascript PHP:如果值以前已经被选中并存储在数据库中,如何从复选框组中删除/禁用选择
现在我正在用PHP和HTML编写代码Javascript PHP:如果值以前已经被选中并存储在数据库中,如何从复选框组中删除/禁用选择,javascript,php,mysql,checkbox,Javascript,Php,Mysql,Checkbox,现在我正在用PHP和HTML编写代码 我需要从复选框组中进行选择 事情是这样的: 下拉菜单中的值是从数据库中存储在表subject中的值中检索的。因此,复选框选项将显示为(例如)数学、代数、微积分、英语、语言学等——我对显示此选项没有问题 表格主题 subject_id subject_name ========== ============ 1 Mathematics 2 Algebra 3
我需要从复选框组中进行选择 事情是这样的:
subject
中的值中检索的。因此,复选框选项将显示为(例如)数学、代数、微积分、英语、语言学等——我对显示此选项没有问题
表格主题
subject_id subject_name
========== ============
1 Mathematics
2 Algebra
3 Calculus
4 English
5 Linguistic
student_id subject_id
========== ===========
1 1
1 2
1 3
2 1
2 3
科目
,并将其存储在另一个名为学生科目
的表中,其中存储学生id
和科目id
(存储学生选择的科目)
例如:subject_id subject_name
========== ============
1 Mathematics
2 Algebra
3 Calculus
4 English
5 Linguistic
student_id subject_id
========== ===========
1 1
1 2
1 3
2 1
2 3
我真的不知道如何创建这个函数。我知道这里有很多经验丰富的程序员和开发人员,所以我希望你能告诉我正确的方法。非常感谢您的指导 不应删除/禁用/不显示现有主题 首先,您应该检查
student\u subject
表的现有行,并将其显示在选中的HTML复选框中
其次,当student在编辑模式下更改主题选择时,在循环中使用student和subject ID检查数据库行
如果提交的学生科目id在数据库中不可用,请将该值插入表中
如果数据库中有该学生提交的科目id,请不要对其进行任何处理
使用数据库检查已提交值中删除的主题,然后从数据库中删除
如果要禁用现有科目,如果科目已分配给学生,请在复选框中使用readonly
。这只是一个想法:
在您的#2上,表将存储student_id和subject_id,我认为最好是每当您将值存储到subject_id时,您只需通过将值存储在php数组中来序列化该值,这样,如果字段是否被选中,您就可以迭代整个数组
Json_encode也很好,因为它将是一个字符串,与serialize相同
例如:
Student_id Subject_ID
999-0518 a:{this is the serialize value };
然后,当您查询结果时,它将被序列化,然后使用unserialize函数并循环迭代结果,json_编码时也是如此;只需执行json_decode()函数并执行循环 您可以使用一个查询,该查询只选择ID不在
学生科目中的科目
它看起来像:
SELECT * FROM `subject`
WHERE `subject_id` NOT IN (
SELECT `subject_id` FROM `student_subject` WHERE `student_id` = '1'
)
(如果不希望这是特定于用户的,则可以使用内部where
子句)
然后基于从中返回的数组构建
元素