繁体   English   中英

为什么我的脚本没有向我的ajax函数返回值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM