私は小さなフォームを持っています。これはajax経由でメール関数に送信されます。しかし、どのような方法でフォームのフィールドを注文しても、最初のフィールドは決して自分のメールボックスには表示されません。メールに送信するときに配列の最初の部分を省略したAjaxフォーム
他のフィールドは正常に動作します。
ここは私のhtmlです。
<form class="form-horizontal amendmentform" name="amendmentform">
<input type="hidden" name="guestname" value="<?php echo get_post_meta($post->ID, 'guestname', true); ?>">
<input type="hidden" name="arrival" value="<?php echo $arrivaldate; ?>">
<input type="text" name="message">
<a id="amendmentsubmit"class="btn btn-primary">Send Request</a>
</form>
私がconsole.logにデータを入力すると、すべてのフィールドの完全な文字列が取得されます。
私のスクリプト のjQuery( '#のamendmentsubmit')をクリックします(関数(){ VARデータ= jQueryの(この).closest( 'amendmentform。')(シリアライズ);。。
jQuery(function(){
jQuery.ajax({
url:"http://www.servicedcitypads.com/wp-admin/admin-ajax.php",
type:'POST',
data:'action=amendment_form&data=' + data,
success:function(result){
jQuery('.amendmentform').hide();
}
});
});
});
そして、メッセージ変数を構築するため、最終的に私のPHP。
// Build the message
$message = "Guestname :" . $_POST['guestname'] ."\n";
$message .= "<br>Arrival Date :" . $_POST['arrival'] ."\n";
$message .= "<br>Amendment :" . $_POST['message'] ."\n";
私は私のメールボックスにそれを作る習慣その常に最初の$ _POSTでこれらを置くためどんなに。奇妙な。
お寄せいただきありがとうございます。何も作業していない場合は、に$_POST
をプリントしてみてください
$('.amendmentform').on('submit', function(){ ... });
:あなたはまた、むしろクリックでより提出方法を、使用することができ
data:{
action: 'amendment_form',
data: data
}
:
標準フォーム関数を使用するのではなく、jquery変数にフォームデータを割り当てないのはなぜですか? – spas2k
'' action = amendment_form&data = '+ data'を '' action = amendment_form&' + data'に変更してみてください –