Jose Salazar February 2016

PHP how to combine multiple if-statements into one function

Based on a checkbox value this form will add subscribers to a corresponding list, but it can't save more than one value.

How do you merge, in order, to select and save more than one checkbox value?

if(isset($_POST['checkbox_list']) && in_array('Austin Metro', $_POST['checkbox_list'])){
    $listID = '3';
    if ($listID){
        $indeed_mail->indeed_wysija_subscribe( $listID, $email );
    }
    break;
} else if(isset($_POST['checkbox_list']) && in_array('Central Austin', $_POST['checkbox_list'])){
    $listID = '4';
    if ($listID){
        $indeed_mail->indeed_wysija_subscribe( $listID, $email );
    }
    break;
} else if(isset($_POST['checkbox_list']) && in_array('Georgetown', $_POST['checkbox_list'])){
    $listID = '5';
    if ($listID){
        $indeed_mail->indeed_wysija_subscribe( $listID, $email );
    }
    break;
}

Answers


JBA February 2016

This might be what you're looking for... ?

$myValues = array('Austin Metro','Central Austin','Georgetown');
$myIds = array('3','4','5');

if (isset($_POST['checkbox_list']) && array_search($_POST['checkbox_list'], $myValues) !== false)
{
    $index = array_search($_POST['checkbox_list'], $myValues);
    $indeed_mail->indeed_wysija_subscribe( $myIds[$index], $email );
}

EDIT : I just read your comment above...

To grab your checkboxes as an array use :

<input type="checkbox" name="checkbox_list[]" value="Austin Metro">
<input type="checkbox" name="checkbox_list[]" value="Central Austin">
<input type="checkbox" name="checkbox_list[]" value="Georgetown">

Then

foreach($_POST['checkbox_list'] as $check) 
{
    // do your stuff as explained above...
    if (isset(check) && array_search($check, $myValues) !== false)
    {
        $index = array_search($check, $myValues);
        $indeed_mail->indeed_wysija_subscribe( $myIds[$index], $email );
    }
}

Post Status

Asked in February 2016
Viewed 2,849 times
Voted 10
Answered 1 times

Search




Leave an answer