Reputation: 71
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
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