人のリスト (名、姓、およびその会社) を作成できる HTML フォームを作成しようとしています。フォーム上の他のすべてのデータと一緒に、この人のリストを (PHP 経由で) メールで送信したいと考えています。
配列を作成するのが道だと思われるので、HTMLとjQueryでこれを試みました:
$('#add').click(function(e)
{
$('#namelist').append('<p class="nameentry"><input type="text" name="cfsName[]" value="' + cName + ": " + fName + " " + sName + '" class="cfsname" disabled /> <input type="button" name="remove" class="remove" value="Remove" /></p>');
fName = $('input[name=inputfName]').val('Forename');
sName = $('input[name=inputsName]').val('Surname');
e.preventDefault();
});
HTML は cfsname[] という配列の空の div に追加されます (私が理解している限り)。
これを解釈して電子メールを作成する PHP コードは次のとおりです。
$message = "";
if (isset($_REQUEST['visitor']) && $_REQUEST['visitor'] == "Yes")
{
$message .= "Nature of work: Site visit" . "\n";
}
else
{
$message .= "Nature of work: $natureofwork" . "\n";
}
$message .= "Location: $locationofwork" . "\n\n";
$message .= "Dates: $dayfrom " . "$monthfrom " . "$yearfrom " . "to $dayto " . "$monthto " . "$yearto" . "\n";
$message .= "Times: $hourfrom" . ":" . "$minfrom " . "to " . "$hourto" . ":" . "$minto" . "\n\n";
foreach($_POST['cfsName'] as $key => $value)
{
$message .= $key . " " . $value . "\n";
}
$message .= "Project Manager: $projectmanager" . "\n";
$message .= "Contact Number: $contactnumber" . "\n";
mail(
$emailto,
"Worksheet Info Test",
$message,
$headers
);
電子メールはほとんど期待どおりに送信されます (私の 'if' ループも機能しませんが、現時点では重要ではありません) が、配列から取得された名前のリストを含むセクションは空白です。私は明らかに完全に間違ったことをしています。メッセージ コード内で「foreach」を呼び出すことはできますか? 私のHTML配列は正しく書かれていますか? どうにかして HTML 配列を別の PHP 配列に変換する必要がありますか?
誰かが私のコードに重大な欠陥を見つけることができれば (多くの小さな欠陥があると確信しています)、正しい方向に突き進んでいただければ幸いです!