Bnabil
Bnabil

Reputation: 71

How to get values from textbox in checkbox in php

I have 4 checkboxes, one of them is Others have textbox, i want to get all the values that the user checked and if he checked others option to get the values from the textbox associated with Others checkbox.

HTML Code

<div class="row">
    <div class="col-sm-4">
        <label class="Modallabel">Available Products:</label>
    </div>
    <div class="col-sm-8">
        <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" value="Cacao">Cacao</label>
        <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" value="Coconuts">Coconuts</label>
        <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" value="Bananas">Bananas</label><br>
        <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" id="optcheck" value="Others">Others</label>
        <input type="text" id="Other_pro" name="otherproduct"><br>
        <label id="Note">(Separate Products with commas)</label>
    </div>
</div>

PHP Code

$checked_count = count($_POST['check_list']);

    if ($checked_count > 1)
    { 
        $productlist = implode(', ', $_POST['check_list']);
        echo $productlist;
    }
    elseif ($checked_count == 1)
    { 
        foreach($_POST['check_list'] as $selected) {
            $productlist = $selected;

            //To check if Others checkbox is checked or not to get the values in textbox
            if ($productlist == "Others")
            {
                $productlist = $_POST["otherproduct"];
            }
            echo $productlist;
        }
    }

Upvotes: 0

Views: 109

Answers (1)

Manish Verma
Manish Verma

Reputation: 469

This will do the trick for you

$checked_count = count($_POST['check_list']);
$productlist = ''; //initialize an empty string for product list
if ($checked_count > 1) //check if multiple check-boxes are checked
{ 
    $productlist = implode(', ', $_POST['check_list']); //implode all checkbox values in list string
    if(in_array('Others', $_POST['check_list'])) { //check if others is checked
        $productlist .= ', '.$_POST['otherproduct']; //con-cat text in text box lined with others in list string 
        $productlist = str_replace('Others,', '', $productlist); //remove others from the list string (skip if you want others to be in your result'
    }
} elseif ($checked_count == 1) {
    $productlist = ($_POST['check_list'][0] == 'Others') ? $_POST['otherproduct'] : $_POST['check_list'][0]; //if only one checkbox is checked then check its value and use the value
}
echo "<br/>".$productlist;

Additionally, you may put client-side and server-side validations to ensure that you get correct input values from your form.

Also, you can use javascript to make your form more interactive.

Upvotes: 1

Related Questions