当进程失败时不发送

时间:2014-08-14 07:48:15

标签: javascript php html ajax

我有PHP代码,帮助我其他人可以与我联系并发送他们的意见给我 这是我的PHP代码:

<?php

$to = 'ticket.ritaweb@gmail.com';
$subject = 'Your decision/Opinion';
$name = htmlspecialchars($_REQUEST['name']);
$email = htmlspecialchars($_REQUEST['email']);
$site = htmlspecialchars($_REQUEST['site']);
$mobile = htmlspecialchars($_REQUEST['mobile']);
$nazar = htmlspecialchars($_REQUEST['nazar']);
$sqt = '2164854';
$sqtin = htmlspecialchars($_REQUEST['sqtin']);

if ($sqt === $sqtin) {

    function clean_string($string) {
        $bad = array("content-  
    type", "bcc:", "to:", "cc:", "href");
        return str_replace($bad, "", $string);
    }

    $email_message .= "name : " . clean_string($name) . "\n";
    $email_message .= "email : " . clean_string($email) . "\n";
    $email_message .= "address : " . clean_string($site) . "\n";
    $email_message .= "number : " . clean_string($mobile) . "\n";
    $email_message .= "opinion : " . clean_string($nazar) . "\n";
    $headers = 'From: ' . $mobile . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: 
    PHP/' . phpversion();
    mail($to, $subject, $email_message, $headers);
}
?>

和我用javascript(ajax)调用它但是我想要ajax中的代码帮助我如果PHP文件中的条件为FALSE或者每个字段都为空,请显示消息:“您的消息是不发送,小心“。

 这是我的AJAX代码:

<script type="text/javascript">
    $(document).ready(function() {
        $('#submit').click(function() {
            $('#submit').attr('value', 'sending...');
            $.post("themes/RitaWeb-v1/send.php", $(".rita_form").serialize(),
                    function(response) {
                        $('#submit').attr('value', 'sent.');
                    });
            return false;
        });
    });
</script>

1 个答案:

答案 0 :(得分:0)

使用PHP在页面上打印消息,例如

{'status' : 'success'}

如果邮件已发送

{'status' : 'error'}

然后根据js的输出做一些事情。

修改

如果您使用jQuery.ajax代替jQuery.post,,您还可以使用settings参数在请求期间出现错误时让某些事情发生。

更多信息:http://api.jquery.com/jquery.ajax/


在您的代码中,它看起来像这样。

PHP:

...

    mail($to, $subject, $email_message, $headers);

    print('{"status":"success"}');
}

else{

    print('{"status":"error"}');
}

你的js:

$.ajax('themes/RitaWeb-v1/send.php').done(function(data){

    status = $.parseJSON(data).status;

    if(status == 'success'){
        // do something
    }

    else if(ststus == 'error'){
        // do something
    }

    else{
        alert('unknown response');
    }
});