在PHP中显示数据库中的复选框值 [英] Show checkbox values from database in PHP

查看:39
本文介绍了在PHP中显示数据库中的复选框值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在数据库中,我有一列语言" ,其值分别为英语阿拉伯语乌尔都语.现在,我将获取这些值并在复选框中显示这些值以进行更新.我必须检查复选框是否将其值与数据库值匹配,然后将其选中,否则将其取消选中.但是我得到的结果是错误的.下面的代码对于从数据库返回的第一个值(在我的情况下为'English')可以正常工作,并检查它是否与数据库值匹配,但是代码不匹配为其他值工作,即使它与数据库值匹配,它也保持选中状态..请帮助我.

In Database I have a column 'language' which have values English, Arabic, Urdu respectively. Now, I am getting these values and show these values in checkboxes for update purposes. I have to check the checkbox if it matches the value with database value and then make it checked otherwise unchecked. But I am getting the wrong results.. Below code is working fine for just 1st value returned from database which is 'English' in my case and it is checked if it matches the database value but code is not working for other values and it remains unchecked even if it matches the database value.. Please help me..

下面是我的代码和图片...

Below is my code and image...

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 数组的第一个元素,并且对make进行了检查,但对于其余值,即使语句匹配也不会检查.对于其余的值,它总是要使用else语句..请告诉我问题出在哪里.预先感谢..

Now, I have English,Hindi,Arabic in Array. But my code is only working for 1st element of array which is English and make is checked but for the rest of values it remain unchecked even if statement is matched. It is always going to else statement for rest of values.. Please tell me where is the problem. Thanks in advance..

推荐答案

尝试一下:

$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);

$checkedEng = '';
$checkedHindi = '';

foreach($lang_spoken as $lang) {
    if (($lang['language'] == "English")) {
        $checkedEng = 'checked';
    } else if ($lang['language'] == "Hindi") {
        $checkedHindi = 'checked';
    }
}

<label class="col-md-4">
<input type="checkbox" value="English" name="language[]" id='checkboxes' <?php echo $checkedEng; ?>/> English </label>

<label class="col-md-4">
<input type="checkbox" value="Hindi" name="language[]" id='checkboxes' <?php echo $checkedHindi; ?>/> Hindi</label>

?>

尽管我尚未测试以上代码,但我认为这一代码应该对您有用.

Though I haven't tested the above code, but I think this one should work for you.

这篇关于在PHP中显示数据库中的复选框值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆