ですから、何が起こっているのか完全には理解できません。私はFancyboxを使用してメール送信プロセスを立ち上げています。このプロセスは、情報(名前、電子メールなど)を収集し、フォーム「post」を介してそれらの値を送信します。次に、このphpファイル(mail.php)は値を取得し、それらを使用して適切なフィールドにデータを入力し、メールメッセージを送信します。かなり簡単に思えます。
メッセージは送信されますが、メール送信フォームから取得しているデータがそこにないようです。fancyboxからフォームを取り出してページにわかりやすく表示すると、phpファイルに適切な値が送信されるので、明らかにこれはfancyboxと関係があります。
私はfancyboxを完全に理解していません(ソースを調べていません)。また、同様の問題を検索しても肯定的な結果が得られていません(おそらく、不適切な検索用語を使用しているだけです)。
とにかく、誰かがここで儀式の方向に私を案内してくれるなら、これは行き詰まるのはとても苛立たしいことです。
参考のために:
HTML-
<form id="default-behavior" action="mail.php" method="post">
<div style="display:none">
<div class="TextCopyright" id="accept" style="width: 700px; font-size: 10px">
page one
</br></br><a id="submitClick" href="#submitPage"><button id="conditionButton" type="button" class="submitBtns">I agree to the terms and conditions above</button></a>
</div>
</div>
<div style="display:none">
<div id="submitPage">
<table border="0" cellspacing="0px" class="TextBlock" style="margin-top: 10px" bgcolor="#FFFFFF">
<tr>
<td class="TextBlockOrangeForm"><strong>Name:</strong></td>
<td><input type="text" class="formText" name="txtName" id="txtName" style="margin-right:50px"/></td>
<td class="TextBlockOrangeForm"><strong>Email:</strong></td>
<td><input type="text" class="formText" name="email" id="email"/></td>
</tr>
<tr>
<td class="TextBlockOrangeForm"><strong>Phone:</strong></td>
<td><input type="text" class="formText" name="txtPhone" id="txtPhone"/></td>
<td class="TextBlockOrangeForm"><strong>Fax:</strong></td>
<td><input type="text" class="formText" name="txtFax" id="txtFax"/></td>
</tr>
<tr>
<td class="TextBlockOrangeForm"><strong>Address:</strong></td>
<td><input type="text" class="formText" name="txtAddress" id="txtAddress"/></td>
<td class="TextBlockOrangeForm"><strong>City:</strong></td>
<td><input type="text" class="formText" name="txtCity" id="txtCity"/></td>
</tr>
<tr>
<td class="TextBlockOrangeForm"><strong>Prov/State:</strong></td>
<td><input type="text" class="formText" name="txtProv" id="txtProv"/></td>
<td class="TextBlockOrangeForm"><strong>Postal/Zip:</strong></td>
<td><input type="text" class="formText" name="txtPostal" id="txtPostal"/></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</br>
<textarea name="story" class="formText" id="story" style="width:490px; height: 125px">
</textarea><br>
<input type="submit" value="Submit Story" id="btnSubmit"/>
</div>
</div>
</form>
PHP-
$message = $_POST['story'];
$headers = 'From:' . $from . "\r\n" .
'Reply-To:' . $from . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// now lets send the email.
mail($to, $subject, $message, $headers);
echo "Message has been sent....!".$message;
js-
$(document).ready(function() {
$("#story").text("");
$("a#inline").fancybox({
'hideOnContentClick': true,
'showCloseButton' : true,
'autoDimensions': true
});
$("#submitClick").fancybox({
'hideOnContentClick': true,
'showCloseButton' : true,
'autoDimensions': true
});
$("#btnSubmit").click(function () {
$('#default-behavior').submit();
});
});
EDIT はjquerypostメソッドをそのまま使用してみましたが、同じ結果が得られました(咳、結果なし)。
$("#btnSubmit").click(function () {
$.post("mail.php", $("#default-behavior").serialize());
//$('#default-behavior').submit();
});
そして、これがファンシーボックスに直接関連していることをさらに確認するために、明示的なパラメーターを使用してjquery postを試し、データを適切に送信しました。
$("#btnSubmit").click(function () {
$.post("mail.php", { email: "email@email.com", story: "blah blah test story" });
//$('#default-behavior').submit();
});