2017-11-08 10 views
0

電子メールが存在する場合は入力値を空白にしたい場合は空白にしないでください。 このスクリプトを試しましたが、状態で空にすることはできません。 私のスクリプトは、この問題を解決してください電子メールが存在する場合に入力値を空白にする方法

<script> 
function checkemailAvailability() { 
$("#loaderIcon").show(); 
jQuery.ajax({ 
url: "check_availability.php", 
data:'emailid='+$("#emailid").val(), 
type: "POST", 
success:function(data){ 
$("#email-availability-status").html(data); 
$("#emailid").val(""); 
$("#loaderIcon").hide(); 
}, 
error:function(){} 
}); 
} 
</script> 

マイcheck_availability.phpが

<?php 
include_once '../config/database.php'; 
//code check email 
if(!empty($_POST["emailid"])) { 
    $database = new Database(); 
    $db = $database->getConnection(); 
    $query = $db->query("SELECT email FROM login WHERE email='" . $_POST["emailid"] . "'"); 
     $query->execute(); 
    $r = $query->fetch(PDO::FETCH_ASSOC); 

if($r>0)echo "<span style='color:red'>Email already exit</span>"; 
    else echo "<span style='color:green'>Email Available</span>"; 

} 
?> 

です。前もって感謝します。

+0

コンソールにエラーが表示されますか? – brk

+0

エラーはありません。条件が電子メールの場合は空の入力テキストを、そうでない場合は削除しないでください。しかし、このコードは両方の状態でメールを削除します。 – kishan

+0

@kishan:確かに、AJAXリクエストの「成功」は、どちらの場合でも、電子メールが存在するかどうかにかかわらずです。 – panther

答えて

1

AJAX successは、電子メールアドレスが使用可能であるかどうかにかかわらず、どちらの場合でもtrueを返します。

AJAX回答の値をテストし、値を空白にする必要があるかどうかを判断する必要があります。

check_availability.php(ライン11-12)

echo $r > 0 ? 'exists' : 'available'; 

JS

success:function(data){ 
    if (data === 'exists') { 
     $("#email-availability-status").html('<span style="color:red">Email already exists</span>'); 
     $("#emailid").val(""); 
     $("#loaderIcon").hide(); 
    } else { 
     $("#email-availability-status").html('<span style="color:green">Email Available</span>'); 
     $("#loaderIcon").hide(); 
    } 
} 
+0

その仕事に感謝します。 – kishan

0

PHP

<?php 
include_once '../config/database.php'; 
$res = 1; 
$msg = "<span style='color:green'>Email Available</span>"; 
if(!empty($_POST["emailid"])) 
{ 
    $database = new Database(); 
    $db = $database->getConnection(); 
    $query = $db->query("SELECT email FROM login WHERE email='" . $_POST["emailid"] . "'"); 
     $query->execute(); 
    $r = $query->fetch(PDO::FETCH_ASSOC); 
    if($r>0) 
    { 
     $res = 2; 
     $msg = "<span style='color:red'>Email already exit</span>"; 
    } 
} 
echo json_encode(array('res'=>$res , 'msg'=>$msg)); 
?> 

JS

dataType : 'json', 
success:function(data){ 
    $("#email-availability-status").html(data.msg); 
    if(data.res == 2) 
     $("#emailid").val(""); 
    $("#loaderIcon").hide(); 
}, 

jsonとしてデータを交換する方が良いでしょう。 必要に応じて結果に複数のパラメータを渡すことができます

関連する問題