0

現在、他の人が作成したお問い合わせフォームを変更しようとしています。現在のフォーム処理 php ファイルは、次の記事で説明されている関数を使用しています: http://www.gerd-riesselmann.net/archives/2005/09/sending-spam-through-contact-forms

これは、送信される電子メールをフォーマットするコード セグメントです。

    if($_POST["txtEmail"]!=""){
    $xm="info@xxx.co.uk";
    $pem=$_POST["txtEmail"];
    $sb="Chauffer Inquiry";
    $txt='  <table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse">
        <tr>
          <td align="right"><strong>Name:</strong></td>
          <td width="250">'.preprocessHeaderField($_POST["txtName"]).'</td>
        </tr>
<tr>
      <td align="right"><strong>Date of booking:</strong></td>
      <td width="250">'.preprocessHeaderField($_POST["date"]).'</td>
    </tr>

私の問題は、この書式設定セクション内で複数選択機能を備えたリスト ボックスを処理することです。配列を使用してフォームで正しく作成しましたが、このコード内で処理する方法がまだわかりません。ここに for ステートメントを含める方法を誰かが説明できますか? if ステートメントの前に、これら 2 つのステートメントで選択されたアイテムの数をキャプチャしています。

$aCars = $_POST['Cars'];
$nCars = count($aCars);

私はいたるところを見ましたが、上記のコードに for ステートメントを埋め込む方法が見つかりませんでした。私のPHPスキルはそれほど優れていないので、私を気楽にやってください。

4

1 に答える 1

0

すべてが機能すると仮定すると ($aCars と $nCars)、値があり、どれが選択されたかを知りたいとします。

印刷できるように、配列を文字列に変換する必要があります。implode 関数を見てください。この関数を使用すると、配列要素を 1 つの文字列に「接着」できます。

$carString = implode(",", $aCars); // $carString will be 'Car1,Car2,Car3'

そこから $txt に追加できます。

$txt .= "<tr><td>Car names</td><td>".$carString. "</td></tr>";
于 2012-11-08T18:47:10.817 に答える