0

PHP で構築されたコンタクト フォームがあり、ラジオ オプション ボックス (ワンクリック) があり、それをグループ チェック ボックスに変更しました。つまり、複数のボックスをクリックできます。

ただし、最後のクリックのみがメールに送信され、コードをいじるとめちゃくちゃになりました.php配列コードと複数の(({{

これがhtmlコードです

    <label><input type="checkbox" name="addon" value="NONE" <?php if (isset($_POST['addon']) && $_POST['addon'] == 'NONE') echo 'checked="checked"'; ?> tabindex="4" />  None <br /></label>
    <label><input type="checkbox" name="addon" value="HKG" <?php if (isset($_POST['addon']) && $_POST['addon'] == 'HKG') echo 'checked="checked"'; ?> tabindex="5" />  Hong Kong <br /></label>
    ....
    <label><input type="checkbox" name="addon" value="Other Start City" <?php if (isset($_POST['trip']) && $_POST['addon'] == 'Other Start City') echo 'checked="checked"'; ?> tabindex="4" /> Other</label>

ここに私が現在持っているphpコードがありますが、これは1つの答えしか与えません.

    $Indhold .= "Tour Extension: ".$_POST['addon']."\n";

私はそれを配列に変更しようとしました(チュートリアルhttp://www.html-form-guide.com/php-form/php-form-checkbox.htmlに従いました)が、配列のみが電子メールに印刷されました。

可能であれば、そのコンボ ボックスにも検証を含めたいと考えています。したがって、NONE と HKG を選択することはできず、少なくとも 1 つをクリックする必要があります。

4

3 に答える 3

1

PHP は、名前が(または)$_POST/GETで終わる場合にのみ配列を設定します。[][index]

使用するname="addon[]"

配列は文字列ではないため、単純に連結することはできません。を使用implodeして、配列のメンバーを単一の文字列に変換できます。forループを使用して、それらを 1 つずつ処理することもできます。

于 2012-12-15T10:35:40.663 に答える
0

$_POST['addon']として処理する必要があるだけですarray(チェックボックスに名前を付けた後"addon[]"

// make sure at least one checkbox is checked
if (isset($_POST['addon']))
{
    foreach ($_POST['addon'] as $k => $v)
    {
        $Indhold .= "Tour Extension: {$v}\n";
    }
}

または代替手段として:

    // make sure at least one checkbox is checked
    if (isset($_POST['addon']))
    {
        $indhold .= 'Tour Extension: ' . implode(', ', $_POST['addon']) . "\n";
    }
于 2012-12-15T10:37:53.743 に答える
0

フォーム内に 1 つの name( ) を持つ複数の入力要素がある場合i.e. not followed by '[]'、送信されたフォームから取得できるのは、それらすべての要素の最新のものだけです。そのため、単一のグループで複数のチェックボックスをチェックすると (i.e. the checkboxes having a single name which is not in the format 'name[]'単純'name'ですが)、フォーム送信から最後にチェックされたチェックボックスの値を取得できます。したがって、グループ名に配列を使用して、単一のグループ内のすべてのチェックボックスの値を取得する必要があります。

したがって、1つのグループに複数のチェックボックスがある場合は、常に次の構文を使用してください。

<input type=checkbox name="check1[]" value="v1">v1
<input type=checkbox name="check1[]" value="v2">v2
<input type=checkbox name="check1[]" value="v3">v3
<input type=checkbox name="check1[]" value="v4">v4

ただし、単一のチェックボックスの場合は、次を使用します。

<input type=checkbox name="check2" value="v1">v1 //No need to append square bracket at the end of the assigned name.
于 2013-11-06T10:53:57.803 に答える