2014-01-29 43 views
0

我试图得到一个错误,说电子邮件已经存在,我试图使用jQuery。我使用ajax,它确实有效,因为当我使用萤火虫时,我去控制台它说,电子邮件地址存在,但我希望它出现在页面上。如何检查电子邮件是否存在

的index.php

<div class="register-newsletter"> 
<form id="myForm"> 
    <input type="email" name="email" id="email" value="enter email address" required> 
    <input type="image" value="SUBMIT" id="sub" src="images/register.jpg"> 
</form> 

<a class="newsletter" href="javascript:void(0);">Add to e-mailing list</a> 

这是我的jQuery

$("#email").click(function(){ 
    if($.trim($(this).val()) == "enter email address"){ 
     $(this).val(""); 
    } 
}) 

$("#email").blur(function(){ 
    if($.trim($(this).val()) == ""){ 
     $(this).val("enter email address"); 
    } 
}) 

$("#sub").click(function() { 

    var email = $.trim($("#email").val()); 
    if(email == "" || !isValidEmailAddress(email)){ 
     alert('enter valid email'); 
     return false; 
    } 

    var ajaxid = ajax("ajax/userInfo.php","email="+encodeURIComponent(email)); 
    $("#result").html($.trim(ajaxid)); 

}); 

$("#myForm").submit(function() { 
    return false; 
}); 

function clearInput() { 

    $("#myForm :input").val(''); 
} 

$('p').hide(); 
$('#myForm').hide(); 
$(".newsletter").click(function(){ 
    $(".newsletter").hide(); 
    $('#myForm').show(); 
}); 
$('#myForm').submit(function(){ 
    $('#myForm').hide(); 
    $('p').show(); 
}); 

,这是我userInfo.php

<?php 
include("../config.php"); 
global $_NEWSLETTER_CUSTOMERS_TABLE; 

$email = $_POST['email']; 
//$email = html_entity_decode(str_replace("'", "\'", $_POST["email"])); 

$query = mysql_query("SELECT * FROM $_NEWSLETTER_CUSTOMERS_TABLE WHERE `email` = '".$email."'"); 
if(mysql_num_rows($query) >0){ 
echo '<span class="exists">Email address arleady exists</span>'; 
} else { 

if(mysql_query("INSERT INTO $_NEWSLETTER_CUSTOMERS_TABLE(email) VALUES('$email')")) 
    echo "Successfully Inserted"; 
else 
    echo "Insertion Failed"; 
} 
+0

添加[小提琴](http://jsfiddle.net)你的问题可以帮助人们很多。 :) – darshandzend

回答

4

您试图将数据追加不正确。 jQuery的ajax()方法具有一个函数,该函数将在请求成功时调用,称为success。目前,您正试图将ajaxid(其中包含ajax()的返回值,而不是请求的结果)追加到#result

var ajaxid = ajax("ajax/userInfo.php","email="+encodeURIComponent(email)); 
$("#result").html($.trim(ajaxid)); 

应该更像:

var ajaxid = ajax("ajax/userInfo.php", { 
    data:"email="+encodeURIComponent(email), 
    success:function(d){ 
     $("#result").html($.trim(d)); 
    } 
}); 
0

使用jQuery.post()你的点击处理程序中:

$.post('ajax/userInfo.php', { email: email }, function(data) { 
    alert(data.message); 
}, 'json'); 

而在你的PHP文件,而不是echo使用:

$response = array(); 
$response['message'] = mysql_query("...") ? 'success' : 'fail'; 
return json_encode($response); 
0

哟ü必须返回值,例如JSON

你的JS

$("#sub").click(function() { 
$.ajax({ 
     url  : "ajax/userInfo.php", 
     dataType : "json", 
     error : function(request, error) {  
        alert("Erreur : responseText: "+request.responseText); 
       }, 
     success : function(data) { 
        alert(data.email_exist); 
        $("#result").html(data.email_exist); 
       }  
});  

});

和你的PHP

if(mysql_num_rows($query) >0){ 
    $result = array(
    'email_exist' => 'Email address arleady exists' 
); 
} 
json_encode($result);