0

PHP初心者のための助けを本当に感謝します!

HTML フォームには、次のチェックボックス リストがあります。

    <input type="checkbox" name="servicetype[]" value="Option A"> Option A<br>
    <input type="checkbox" name="servicetype[]" value="Option B"> Option B<br>
    <input type="checkbox" name="servicetype[]" value="Option C"> Option C<br>
    <input type="checkbox" name="servicetype[]" value="Option D"> Option D<br>
    <input type="checkbox" name="servicetype[]" value="Option E"> Option E<br>

ただし、以下の php コードは機能しません。フォームにチェックを入れたオプションをメールで送信したい。他のすべてのチェックボックス以外の日付は正常に到着します。これがphpです:

$mail = new Mail();
$mail->to = "my@emailadddress.com";            
$mail->from  =   $_REQUEST["emailaddress"];
$mail->subject = "Form Results";
$mail->body.= "Name: ".$_REQUEST["title"]." ".$_REQUEST["firstname"]." ".$_REQUEST["surname"]. "\n";
$mail->body.= "Email Address: ".$_REQUEST["emailaddress"]. "\n";            
$mail->body.= "Phone Number: ".$_REQUEST["telephonenumber"]. "\n";
$mail->body.= "Address:  ".$_REQUEST["addressline1"]. "\n";    
$mail->body.= $_REQUEST["addressline2"]. "\n";                
$mail->body.= "Town/City:  ".$_REQUEST["towncity"]. "\n";
$mail->body.= "County/State:  ".$_REQUEST["countystate"]. "\n";            
$mail->body.= "Post Code: ".$_REQUEST["postcode"]."\n";
$mail->body.= "Country: ".$_REQUEST["country"]."\n";            

$servicetype = $_POST['servicetype'];
$body .= "servicetype: \r\n".

foreach ($servicetype as $selected) {
$body .= " > ".$selected."\r\n";      
}


$mail->send();
$success=1;

PHP の servicetype ビットは、私がコピーした部分ですが、成功しませんでした。誰でも助けてもらえますか?

4

2 に答える 2

1
  • サービス タイプに関連するテキストを$bodyではなく に保存$mail->bodyします。つまり、メールには含まれません。
  • .また、a の代わりにa で行を終了しました;
  • $_POSTの代わりに突然使い始め$_REQUESTます。これは問題ではありませんが (postフォームでメソッドを使用すると仮定すると)、2 つを突然切り替えるのは「奇妙」であり、エラーが発生しやすくなります。
  • cehckbox が実際に選択されているかどうかを確認する必要があります。そうでない場合$servicetypeは設定が解除され、エラーが発生します。isset()このチェックに使用します。

したがって、コードの最後の部分を次のように変更します。

$servicetype = $_POST['servicetype'];
if(isset($servicetype)) {
    $mail->body .= "servicetype: \r\n";

    foreach ($servicetype as $selected) {
        $mail->body .= " > ".$selected."\r\n";      
    }
}
于 2013-01-11T12:30:12.390 に答える
1

あなたはこのようにすることができます-

$servicetype = implode(",", $_POST['servicetype']);
$mail->body .= $servicetype."\r\n";
于 2013-01-11T12:38:31.883 に答える