我使用一个ajax + php脚本从html网站发送邮件。我在我的其他网站(不同的服务器)上有这个脚本,它的工作正常,但现在我不能让它在我正在建设的新网站上工作。 这是调用ajax函数的表单:
<form id="form" enctype="multipart/form-data" method="post">
<table id="tablecontact">
<tr><th>Name:</th><td><input id="name" type="text" class="input" name="Name" value="" size="30" /></td></tr>
<tr><th>E-mail:</th><td><input id="email" class="input" name="E-mail" value="" size="30" /></td></tr>
<tr><th>Subject:</th><td><input id="subject" class="input" name="Subject" value="" size="30" /></td></tr>
<tr><th>Message:</th><td><textarea id="message" class="input" name="Massege" cols="40" rows="5" style="max-width:700px"></textarea></td></tr>
<tr><td colspan="2"><center><input id="submit" type="submit" class="submit" value="Submit" onclick="submitForm();" /> <input type="button" class="reset" value="Reset" /></center></td></tr>
</table>
</form>
这是ajax脚本:
function submitForm() {
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange= function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById('response').innerHTML=xmlhttp.responseText;
}
}
var name=document.getElementById('name').value;
var email=document.getElementById('email').value;
var subject=document.getElementById('subject').value;
var message=document.getElementById('message').value;
var parameters='name='+name+'&email='+email+'&subject='+subject+'&message='+message;
xmlhttp.open('POST','mailsend.php',true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send(parameters);};
这是mailsend.php:
<?php
$pass = validEmail($_POST['email']);
$subject = $_POST['subject']." : Contact";
$email = $_POST['email'] ;
$name=$_POST['name'];
$message = $_POST['message'] ;
$headers = "From: $name Email: $email";
if ($pass && strlen($subject)>=5 && strlen($message)>=5 && strlen($name)>=5)
{
$to='MYMAIL';
$sent = mail($to, $subject, $message, $headers) ;
if ($sent){
echo('<div id="success"><img src="ok.png" style="margin-top:3px;" /> Your message was sent.</div>');
$hppmessage='Thanks for contacting.';
$hppheaders='Auto Replay from: MYMAIL';
$hppsubject='Contact message received.';
$sent1= mail($email,$hppsubject,$hppmessage,$hppheaders,'-f MYMAIL');
} else
echo ('<div id="error"><img src="error.png" style="margin-top:3px;" /> Error! Please try again.') ;
} else
echo ('<div id="error"><img src="error.png" style="margin-top:3px;" /> Error! Please try again.') ;
?>
任何帮助都会得到帮助,在此先感谢并祝福。
答案 0 :(得分:0)
没关系,但是使用jQuery,这是一个指向该网站的链接:http://jquery.com/。 jQuery更有效,更快!一旦你包含了jQuery脚本文件,就将你的javascript更改为:
function submitForm(){
var nameval = $("#name").val();
var emailval = $("#email").val();
var subjectval = $("#subject").val();
var messageval = $("#message").val();
$.post("mailsend.php", { name: nameval, email: emailval, subject :subjectval, message : messageval } );
}
你的ajax脚本来自w3schools,它不是教学的好地方,而是在这里阅读官方jQuery文档:http://api.jquery.com/jQuery.post/。
编辑:此外,您的$ to变量不是有效的电子邮件,因此可能是您的问题。