我正在拼命尝试使用POST方法和jquery validate plugin发送表单。
我有一个简单的php文件,它应该发送一封包含数据格式的电子邮件。
作为Mac用户,我正在使用MAMP来测试php服务器部分。
当我点击表单的提交按钮并且状态正常时,我查看了Web控制台:
[15:32:50,638] POST http://localhost:8888/contact.php [HTTP/1.1 200 OK 36ms]
但没有任何反应。它看起来我的contact.php文件永远不会到达!
我尝试将文件上传到服务器,结果相同:没有。
这是我的表单,在html中:
<form class="cmxform" id="commentForm" method="" action="">
<fieldset class="myfield">
<legend>For all information, please contact us with the following form :</legend>
<p>
<label class="mylabel" for="iname"><span style="color:red;">* </span>Nom</label>
<input class="myinput" id="iname" name="iname" minlength="2" maxlength="50" type="text" required/>
</p>
<p>
<label class="mylabel" for="imail"><span style="color:red;">* </span>Email</label>
<input class="myinput" id="imail" name="imail" minlength="3" maxlength="100" type="email" required email/>
</p>
<p>
<label class="mylabel" for="isubject"><span style="color:red;">* </span>Sujet</label>
<input class="myinput" id="isubject" name="isubject" minlength="3" maxlength="130" type="text" required/>
</p>
<label class="mylabel" for="imessage" style="vertical-align: top;"><span style="color:red;">* </span> Message</label>
<textarea class="mytextarea" id="imessage" name="imessage" minlength="3" maxlength="2000" type="text" required></textarea>
</p>
<p>
<input class="submit" type="submit" value="Send"/>
</p>
</fieldset>
</form>
对于jquery部分,我正在使用post方法:
$('#commentForm').validate({
errorClass : "myerror",
errorElement : 'em',
submitHandler: function() {
$.post( 'contact.php', { name : 'john' } ); //just for testing, i would normally pass the form data
}
});
和php部分,这是一个简单的电子邮件转发:
<?php
header('Content-type: text/html; charset=utf-8');
$message = <<<TEXT
name: {$_POST['name']}
email: {$_POST['email']}
subject: {$_POST['subject']}
message: {$_POST['message']}
TEXT;
$header ='From: contact@xxxxxx.com'."\n";
$header .='Reply-To: '.$_POST['name']."\n";
$header .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$header .='Content-Transfer-Encoding: 8bit';
$to = 'yyyyyy@contact.com';
$subject = $_POST['subject'];
if( ! mail($to, $subject, $message, $header) )
{
die('Error sending email.');
}else {
die( 'Email sent!'.$to .
'sub:' .$subject .
'message:' .$message .
'header:' .$header);
}
我做错了什么?作为html开发的新手,我很困惑。我已经浏览了SO以找到类似的问题,并尝试复制/粘贴示例,但我仍然遇到了问题。
感谢您的帮助..
答案 0 :(得分:0)
html文件中的输入名称与php文件不同
<input class="myinput" id="iname" name="iname" minlength="2" maxlength="50" type="text" required/>
此处的名称为"iname"
在php文件中
name: {$_POST['name']}
名称为name
更正此问题并查看结果