Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Show checkbox values from database in PHP

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...

See Image For Error

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; } ?>

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..

like image 692
Junaid afzal Avatar asked Sep 19 '26 18:09

Junaid afzal


2 Answers

Try below code.

<?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>
like image 121
RJParikh Avatar answered Sep 21 '26 08:09

RJParikh


<?php 

$lang_spoken = array();
$lang_spoken[0]['language'] = 'English';
$lang_spoken[1]['language'] = 'Hindi';
    $isEnglish = "";
    $isHindi = "";
foreach($lang_spoken as $lang){


    if($lang['language']=="English"){
        $isEnglish = "checked=checked";
    }

    if($lang['language']=="Hindi"){
        $isHindi = "checked=checked";
    }
}
?>

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

<label class="col-md-4">
<input type="checkbox" value="Hindi" name="language[]" id='checkboxes' <?php echo $isHindi; ?>/> Hindi</label>
like image 34
Dinesh Rawat Avatar answered Sep 21 '26 08:09

Dinesh Rawat



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!