0

この状況で問題が発生しています。たくさん検索しましたが、どうすればよいかわかりません.... 4つのチェックボックスがあり、各チェックボックスで特定の機能が実行されています。チェックボックス用のこのhtmlコードがあります。

    <form action="check.php" method="post">
<table border="1" width="200">
<tr>
<td>
<input type="checkbox" name="first[]" value="option1" />
</td>
<td width="500">
<strong>Option 1</strong>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="first[]" value="option2" />
</td>
<td width="500">
<strong>Option 2</strong>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="first[]" value="option3" />
</td>
<td width="500">
<strong>option 3</strong>
</td>
</tr>
</table>
<table border="1" width="200">
<tr>
<td>
<input type="text" name="entered_value"/>
</td>
</tr>
</table>
<table border="1" width="200">
<tr>
<td>
<input type="submit" value="Submit"/>
</td>
</tr>
</table>
</form>

このコードを使用してこれらのチェックボックスにアクセスしています

<?php
if (isset($_POST['submit']))
    {
        if(isset($_POST['first']))
            {
                $get_data_checkboxes = $_POST['first'];
            }   
        else
            {
                $get_data_checkboxes = "";
            }
            print_r($get_data_checkboxes);
            exit();
}
?>

私が直面している問題は、チェックボックスにチェックマークを付けるたびに機能を実行する必要があるようなものです。たとえば、人がオプション 1 にチェックマークを付けると、機能 1 を実行できるはずです...

どんな助けでも大歓迎です:)

4

2 に答える 2

1

複数のチェックボックスを選択する場合は、次のように試すことができます。

for( $i = 0; $i < count( $_POST['first'] ); $i++ ) {

    if( $_POST['first'][$i] == 'option1' ) {

        echo "function1";

    } else if( $_POST['first'][$i] == 'option2' ) {

        echo "function2";

    } else if( $_POST['first'][$i] == 'option3' ) {

        echo "function3";
    }
}
于 2012-05-14T17:01:54.210 に答える
0

ラインはいらない

    if (isset($_POST['submit']))

それがなくても、コードは正常に機能し、それを使用して次のように関数を呼び出すことができます。

    <?php
    if(isset($_POST['first']))
    {
         $get_data_checkboxes = $_POST['first'];
         foreach($get_data_checkboxes as $value){
             //call functions named option1(), option2(), etc..
             call_user_func($value);
         }
    }   
    else{
        $get_data_checkboxes = "";
    }

?>
于 2012-05-14T17:05:22.823 に答える