条件错误

时间:2015-10-04 08:29:29

标签: php jquery ajax

我想显示错误即。电子邮件已存在于数据库中如果没有显示谢谢你的消息。

我正在使用ajax和jquery。这是我的代码: Ajax jquery:

<script type="text/javascript" >
$(function() {
    var val_holder;
    $("#subscribe").click(function() {
        val_holder      = 0;
        var subscribe_mail       = jQuery.trim($("#subscribe_mail").val()); // email field
        var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

        if(subscribe_mail == "") {
            $(".error_message").html("This field is empty.");
            val_holder = 1;
        }
        if(subscribe_mail != "") {
            if(!email_regex.test(subscribe_mail)){ // if invalid email
                $(".error_message").html("Your email is invalid.");
                val_holder = 1;
            }
        }
        if(val_holder == 1) {
            return false;
        }
        val_holder = 0;
        var dataString = '&subscribe_mail=' + subscribe_mail;

        $.ajax({
            type: "POST",
            url: "ajax_subscribe.php",
            data: dataString,
            datatype: "json",
            success: function(response) {
                console.log(response);
                if(response!= '')
                {
                    $('.error_message').html(subscribe_mail + ' is already Exists.');
                    return true;

                } else {
                    $('.error_message').html('Thanks For subscription!');
                    return false;
                }
            }
        });
        $("#subscribe_form")[0].reset();
        return false;
    });
});

php文件代码是:

<?php error_reporting('E_ALL ^ E_NOTICE'); include('config.php');if($_POST) {   $subscribe_mail = $_POST['subscribe_mail'];
$date = date('Y-m-d');

$q = mysql_query("select * from signups where signup_email_address='".$subscribe_mail."' ") or die(mysql_error());
$n = mysql_fetch_row($q);
if( $n>0 )
{
    echo 'Already Exists';
}
else
{
    $insert = mysql_query("insert into signups(signup_email_address,signup_date) values('$subscribe_mail','$date')") or die(mysql_error());

    $from = 'sunshine.kapoor270@gmail.com';
    $to = $subscribe_mail;   
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= "From: " . $from . "\r\n"; // Sender's E-mail
    $headers .= "Reply-to: " . $from . "\r\n";
    $headers .= "Return-Path: $from\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    $subject = "Thanks for Subscription";  
    $message = "Subscription email id : ".$subscribe_mail." ";     

    $sentmail = mail($to,$subject,$message,$headers);
    $sentmail = mail($from,$subject,$message,$headers);
} } ?>

只有 if(response!= ''){$('.error_message').html(subscribe_mail + ' is already Exists.'); return true; } 这种情况有效。如果答案是空白的,它就不会成为其他部分。

2 个答案:

答案 0 :(得分:2)

当用户不在数据库中时,这取决于您在回复中发回的内容。

您可以将条件更改为:

if(!$ .trim(response)){......

如果响应为null或为空。

答案 1 :(得分:0)

你应该删除你的决赛?&gt;在你的PHP文件中,因为你可以省略它。那些以及关闭PHP-Tag之后的行负责额外的空字符/输入,这使得calinaadi的回答很好。

你应该检查你的包含是否有相同的行为。

我永远不会检查任何内容或空字符串,这样可以反转你的if:

if(str.trim(response) == 'Already Exists') {
        $('.error_message').html('Thanks For subscription!');
        return false;
} elseif(str.trim(response) == 'New User') {            
        return true;
} else {
        $('.error_message').html(subscribe_mail + ' is some strange unknown Stringoutput.');
        return false;
}