【问题标题】:not send when the process failed进程失败时不发送
【发布时间】:2014-08-14 17:33:51
【问题描述】:

我有帮助我的 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>

【问题讨论】:

    标签: javascript php html ajax


    【解决方案1】:

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

    {'status' : 'success'}
    

    如果邮件已发送并且

    {'status' : 'error'}
    

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

    编辑:

    如果您使用jQuery.ajax 而不是jQuery.post,,您还可以使用设置参数来让请求期间出现错误时发生一些事情。

    更多信息: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');
        }
    });
    

    【讨论】:

    • 我不明白,请您编辑我的代码吗?
    • @amn 试试上面的方法。这就是我能做的。
    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 2020-07-28
    • 2020-10-15
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多