1

質問: メールで選択したチェックボックスを表示するにはどうすればよいですか?

アンケート ( http://www.hello-rio.com/surveyonshoes/ ) を作成しました。フォームが送信されたときに、選択したチェックボックスがメールに表示されるようにしようとしています。これに関しては、私は完全な初心者です。どんな助けでも大歓迎です

これが私のhtmlサンプルチェックボックスコードです(index.html内):

<label for="colors">What colors do you own? (check all that apply)</label>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="black">black </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="brown">brown </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="beige">beige </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="white">white </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="gold">gold </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="silver">silver </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="red">red </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="blue">blue </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="yellow">yellow </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="green">green </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="orange">orange </div>
<div class="twocol"><input type="checkbox" name="color_flats[]" value="purple">purple </div><br>
<label for="others">Others</label>
<input type="text" name="color_flats[]" class="others" />

完全な php コード (contact.php) は次のとおりです。

<?php

/* Set e-mail recipient */
$myEmail  = "johndoe@domain.com";

/* Check all form inputs using check_input function */
$subject         = "Survey on Shoes";
$Name            = check_input($_POST['Name'], "Enter your name");
$Address         = check_input($_POST['Address']);
$Email           = check_input($_POST['Email']);
$Age             = check_input($_POST['Age']);
$Sex             = check_input($_POST['Sex']);
$Status          = check_input($_POST['Status']);
$Employment      = check_input($_POST['Employment']);
$Income          = check_input($_POST['Income']);
$pairs_flats     = check_input($_POST['pairs_flats']);
$color_flats     = check_input($_POST['color_flats']);
$size_flats      = check_input($_POST['size_flats']);
$material_flats  = check_input($_POST['material_flats']);
$brand_flats     = check_input($_POST['brand_flats']);
$frequency_flats = check_input($_POST['frequency_flats']);
$cost_flats      = check_input($_POST['cost_heels']);
$pairs_heels     = check_input($_POST['pairs_heels']);
$color_heels     = check_input($_POST['color_heels']);
$size_heels      = check_input($_POST['size_heels']);
$material_heels  = check_input($_POST['material_heels']);
brand_heels      = check_input($_POST['brand_heels']);
$frequency_heels = check_input($_POST['frequency_heels']);
$cost_heels      = check_input($_POST['cost_heels']);
$height_heels    = check_input($_POST['height_heels']);
$work            = check_input($_POST['work']);
$mall            = check_input($_POST['mall']);
$events          = check_input($_POST['events']);
$travel          = check_input($_POST['travel']);


/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $Email))
{
    show_error("E-mail address not valid");
}

/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
    $website = '';
}

/* Let's prepare the message for the e-mail */
$message = "Hello!

Your form has been submitted by:

Name: $Name
Address: $Address
Email: $Email
Age: $Age
Sex: $Sex
Status: $Status
Employment: $Employment
Income: $Income


FLATS
Pairs: $pairs_flats pairs
Color: $check_msg
Size: $size_flats
Material: $material_flats
Brand: $brand_flats
Frequency: $frequency_flats pairs a year
Cost: Php $cost_flats


HEELS
Pairs: $pairs_heels pairs
Color: $color_heels
Size: $size_heels
Material: $material_heels
Brand: $brand_heels
Frequency: $frequency_heels pairs a year
Cost: $cost_heels
Height: $height_heels inches


Work/School: $work
Mall: $mall
Events: $events
Travel: $travel


End of message
";

/* Send the message using mail() function */
mail($myEmail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.html');
exit();

/* Functions we used */
function check_input($data, $problem='')

    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
        return $data;
}

function show_error($myError)
{
?>
    <html>
    <body>

        <b>Please correct the following error:</b><br />
        <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}
?>

implode、if ステートメント、foreach など、あらゆる種類のコードを試しました。うまくいかないようです...

4

2 に答える 2

1
$color_flats = check_input(implode("," , $_POST['color_flats']));

$message = "...

FLATS
Pairs: $pairs_flats pairs
Color: $color_flats


...";
于 2012-07-31T15:17:03.700 に答える
1

は配列なので$color_flats、それぞれをループする必要があります

foreach($color_flats as $whatever){
    echo $whatever;
}

または、それを内破して、1 つの一意の文字列を作成することもできます。

echo implode(',', $color_flats);

<?php

#   Default Vars
$_color_flats = '';
if(isset($color_flats) === TRUE){
    #   Is Array ?
    if(is_array($color_flats) === TRUE){
        #   Count
        $c = count($color_flats);

        #   Loop
        for($i=0; $i < $c; $i++){
            $_color_flats.= (isset($color_flats[$i]) === TRUE ? $color_flats[$i] : '').($i == ($c-1) ? '' : ($i == $c-2 ? ' and ' : ', '));
        }
    }
}

echo $_color_flats;

?>
于 2012-07-31T15:18:50.453 に答える