0

フォームを送信した後にチェックボックスのチェックされた値を取得しようとしています (検証のようなもの)。とにかく、選択した入力とは無関係に、コードはユーザーがどの入力を選択したかを判断できません。

例: オプション 1 オプション 2 オプション 3

オプション 2、3 がユーザーによって選択された場合、コードはオプション 1、2 を選択します。オプション 2 がユーザーによって選択された場合、コードはオプション 1 を選択します。ユーザーがオプション 1 またはオプション 1、オプション 2、またはすべてのオプションを選択した場合にのみ、コードは正常に動作します。

for ($y=0;$y<$n; $y++) {
    $caption_and_value = explode(":",$before_explode[$y]); 
    $caption = caption_and_value[0];
    $value = caption_and_value[1];
    $match .= '<input type="checkbox" name="'.$name_form[$y].'" value="'.$value.'"'; 
    if (isset($_POST[$name_form][$y])) {
        $match .= ' checked="checked"';
    } else {
        $match .= ''; 
    } 
    $match.='>'.$caption.'<br />';  
}

Pls は、私が何か間違ったことをしている場合はお知らせください。数時間からこれを理解できません。ありがとう!

4

2 に答える 2

3

代わりにチェックボックスの配列を使用する必要があります。

<input type="checkbox" name="boxes[]">
<input type="checkbox" name="boxes[]">
<input type="checkbox" name="boxes[]">

...次にPHPで:

foreach($_POST['boxes'] as $key => $value) {
    echo $key . ': ' . $value;
}
于 2013-10-22T23:13:31.290 に答える
0

私はこれを持っています。フォームは次のとおりです。

<form method='POST' action = 'process.php'>
<?php 
for ($i=1;$i<=3;$i++){
echo "<input type='checkbox' name='box[]' value='$i'>$i<br>";
}
?>
<input type='submit' value='send'>
</form>

そしてそれはphpです:

    <?php 
    $input_value = $_POST['box'];
    $i = 0;
    $choice1 = NULL;
    $choice2 = NULL;
    $choice3 = NULL;
    foreach ($input_value as $value){
    if ($value == "1"){
    $choice1 = "active";
    }
    if ($value == "2"){
    $choice2 = "active";
    }
    if ($value == "3"){
    $choice3 = "active";
    }
    }
//choice checker script block
    if (!isset($choice1) and !isset($choice2) and !isset($choice3)){
    echo "You didn't choose anything!";
    }
    if ($choice1 == "active" and $choice2 == NULL and $choice3 == NULL){
    echo "You only chose 1";
    }
    if ($choice2 == "active" and $choice1 == NULL and $choice3 == NULL){
    echo "You only chose 2";
    }
    if ($choice3 == "active" and $choice2 == NULL and $choice1 == NULL){
    echo "You only chose 3";
    }
    if ($choice1 == "active" and $choice2 == "active" and $choice3 == NULL){
    echo "You chose 1 and 2";
    }
    if ($choice1 == "active" and $choice3 == "active" and $choice2 == NULL){
    echo "You chose 1 and 3";
    }
    if ($choice3 == "active" and $choice2 == "active" and $choice1 == NULL){
    echo "You chose 2 and 3";
    }
    if ($choice1 == "active" and $choice2 == "active" and $choice3 == "active"){
    echo "You chose all of the choice!";
    }
// end of choice checker script blok
    ?>

少し面倒で大量のコードかもしれません。:D
しかし、ユーザーが選択した選択肢を確認したい場合は、上記の「選択チェッカースクリプト」を既に作成しています。
実際には で変更または置換できますがif($choice == 'active')if(isset($choice))同じものを返します。それを試してみてください!あなたはそれをカスタマイズする方法を知っているでしょう..それ
があなたが探しているものだと思います.

于 2013-10-23T02:54:35.663 に答える