在数据库中我有一列'语言'有价值观的English, Arabic, Urdu分别。现在,我正在获取这些值并在复选框中显示这些值以进行更新。我必须检查该复选框是否与数据库值匹配,然后将其选中,否则取消选中。但我得到了错误的结果。下面的代码对于从数据库返回的第一个值运行良好,即'英语'就我而言,它会检查它是否与数据库值匹配,但代码不适用于其他值,即使它与数据库值匹配,它仍然未被检查。请帮助我。
下面是我的代码和图像...
PHP:-
$lang = $pdo->prepare("SELECT `language` FROM admin_panel_languages WHERE user_id=:user_id");
$lang->execute(array(":user_id"=>$user_id));
$lang_spoken=$lang->fetchAll(PDO::FETCH_ASSOC);
print_r($lang_spoken);
foreach($lang_spoken as $lang){
if($lang['language']=="English"){
?>
<label class="col-md-4">
<input type="checkbox" value="English" name="language[]" id='checkboxes' checked/> English </label>
<?php } else{ ?>
<label class="col-md-4">
<input type="checkbox" value="English" name="language[]" id='checkboxes'/> English </label>
<?php } break; } ?>
foreach($lang_spoken as $lang){
if($lang['language']=="Hindi"){
?>
<label class="col-md-4">
<input type="checkbox" value="Hindi" name="language[]" id='checkboxes' checked/> Hindi</label>
<?php } else{ ?>
<label class="col-md-4">
<input type="checkbox" value="Hindi" name="language[]" id='checkboxes'/> Hindi</label>
<?php } break; } ?>
我现在有English,Hindi,Arabic在数组中。但我的代码仅适用于数组的第一个元素,即English并且 make 被检查,但对于其余值,即使语句匹配,它仍然未被检查。对于其余的值,它总是使用 else 语句。请告诉我问题出在哪里。提前致谢..
尝试下面的代码。
<?php
$checkedEnglish = $checkedHindi = 0;
foreach($lang_spoken as $lang){
if($lang['language']=="English"){
$checkedEnglish = 1;
}
elseif($lang['language']=="Hindi")
{
$checkedHindi = 1;
}
}
?>
<label class="col-md-4">
<input type="checkbox" value="English" name="language[]" id='checkboxes' <?php echo ($checkedEnglish == 1) ? "checked" : ""; ?>/> English </label>
<label class="col-md-4">
<input type="checkbox" value="Hindi" name="language[]" id='checkboxes' <?php echo ($checkedHindi == 1) ? "checked" : ""; ?>/> Hindi </label>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)