2014-01-29 6 views
0

이메일이 이미 존재하고 jquery를 사용하려고한다는 오류가 표시됩니다. 아약스를 사용하고 있는데 작동하지 않습니다. 방화범을 사용하고 콘솔에 접속하면 이메일 주소는 존재하지만 페이지에 나타나기를 바랍니다.이메일이 있는지 확인하는 방법

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

와 PHP. :) – 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'); 

대신 echo 사용하여 PHP 파일 :

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

에야디야 u는 내 JS

예를 JSON 값을 반환해야

$("#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); 
       }  
});  

}); 사람들에게 많은 도움이 될 수 있습니다 질문과 [바이올린] (http://jsfiddle.net) 추가

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