[英]Why isn't my script returning a value to my ajax function?
这是我第一次使用ajax。 我只是想将变量传递给使用ajax发送电子邮件的php处理脚本。 但是,我没有收到任何从php脚本发送回ajax的消息,表明它已经成功,即使它成功并且我要求它返回0或1。
我的ajax是:
jQuery.ajax({
//this is the php file that processes the data and send mail
url: "process.php",
//GET method is used
type: "GET",
//pass the data
data: dataString,
//Do not cache the page
cache: false,
//success
success: function (html) {
alert(html);
//if process.php returned 1/true (send mail success)
if (html==1) {
//hide the form
jQuery('.form').fadeOut('slow');
//show the success message
jQuery('.done').fadeIn('slow');
//if process.php returned 0/false (send mail failed)
} else alert('Sorry, unexpected error. Please try again later.');
}
});
我的PHP是:
$username=htmlspecialchars(stripslashes($_GET['username']));
$telnumber=htmlspecialchars(stripslashes($_GET['telnumber']));
$email=htmlspecialchars(stripslashes($_GET['email']));
$numberparty=htmlspecialchars(stripslashes($_GET['numberparty']));
$message=htmlspecialchars(stripslashes($_GET['message']));
$to=//myemail address;
$workshopName=htmlspecialchars(stripslashes($_GET['workshopName']));
$subject='Booking request for: '.$workshopName;
$body= "<ul><li>Name: ".$username."</li>";
$body.="<li>Email: ".$email."</li>";
$body.="<li>Telephone Number: ".$telnumber."</li>";
$body.="<li>Number in party: ".$numberparty."</li>";
if(!empty($message)){
$body.="<li>Message: ".$message."</li>";
}
$body.="</ul>";
function sendmail($to, $subject, $message, $from) {
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
$result = mail($to,$subject,$message,$headers);
if ($result) return 1;
else return 0;
}
$result = sendmail($to, $subject, $body, $email);
代替return
,使用echo
将其返回到脚本:
if ($result) echo 1;
else echo 0;
您可以将其缩短,例如:
echo $result ? 1 : 0;
使用AJAX时,您不return
。 您需要echo
显值。
if ($result) echo 1;
else echo 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.