我想显示错误即。电子邮件已存在于数据库中如果没有显示谢谢你的消息。
我正在使用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; }
这种情况有效。如果答案是空白的,它就不会成为其他部分。
答案 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;
}