我有一个表单,其中包含自动填充mysql表中数据的字段。特别是两种类型的角色的两个复选框输入字段; instructor
和contact
。我最初将表中的值存储为1
或0
,以表示true
或false
。一个人可以是一个人,也可以是其中之一,两者都不是。当我尝试通过复选框显示这些值时,我没有得到结果。如果特定角色的表格中的值为1
,我希望使用复选框checked
。我没有结果。
数据库查询和显示:
$db_select = $db_con->prepare("
SELECT a.name,
a.academy_id,
p.contact_role,
p.instructor_role
FROM academy a
LEFT JOIN person p ON a.academy_id = p.academy_id
WHERE a.academy_id = :id
");
if (!$db_select) return false;
if (!$db_select->execute(array(':id' => $id))) return false;
$results = $db_select->fetchAll(\PDO::FETCH_ASSOC);
if (empty($results)) return false;
$result = '';
foreach ($results as $value){
$result .= "<ul>";
$result .= "<li><input id=\"person_contact\" name=\"person_contact\" type=\"checkbox\"". $contact_role = $value2['contact_role'] == "1" ? "checked='checked'" : "" ." />Concact</li>";
$result .= "<li><input id=\"person_instructor\" name=\"person_instructor\" type=\"checkbox\"". $instructor_role = $value2['instructor_role'] == "1" ? "checked='checked'" : "" ."/>Instructor</li>";
$result .= "</ul>";
$s++;
}
答案 0 :(得分:1)
<强>更新强> 什么是$ value2?你在foreach声明中使用了$ value。
也改变了
$contact_role = $value2['contact_role'] == "checked"
到
$contact_role = $value['contact_role'] == "1"
再次检查
对于html搞砸了:
$result="";
$strChecked="";
foreach ($results as $value){
$result .= "<ul>";
if ($value2['contact_role'] == "1")
$strChecked = "checked='checked'";
$result .= "<li><input id='person_contact' name='person_contact' type='checkbox'". $strChecked ." />Concact</li>";
$result .= "<li><input id='person_instructor' name='person_instructor' type='checkbox'". $strChecked ."/>Instructor</li>";
$result .= "</ul>";
}
答案 1 :(得分:0)
首先,我认为你有$ value2的问题 - 这不应该只是$ value吗?
其次,除非您在复选框输入上指定“值”属性,否则如果选中,它将在get / post期间返回“On”,如果未选中则不会返回值。尝试在复选框中添加值=“1”,然后针对“1”检查值。