2017-10-30 7 views
0

emailがaction.phpのデータベースと同じ場合は、サブミットボタンを隠そうとしています。私は、次のコードでこれを実装する方法:jQuery Ajaxがサブミット時に変数がokである場合hideボタン

<form onsubmit="return submitdata();"> 
    <input type="text" id="mail"> 
    <input type="submit" value="Check"> 
</form> 

<p id="msg"></p> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

<script type="text/javascript"> 

function submitdata() 
{ 
    var name=document.getElementById('mail').value; 

$.ajax({ 
    type: 'post', 
    url: 'action.php', 
    dataType: 'text', 
    data: { 
     'name':name 
    }, 
    cache:false, 
    success: function (data) { 
     console.log(data); 
     $('#msg').html(data); 
    } 
}); 

return false; 
} 

</script> 

action.php:電子メールの一致は、私が正しいメッセージを取得すると

<?php 
require_once 'config.php'; 
$email_ck=$_POST['name']; 
if(extract($crud->get_email($email_ck))){ 
    echo "Response: ".$email; 
    $hide = 1; 
}else{ 
    echo 'hmmmm'; 
} 
?> 

が、私は$の皮をコールバックする可能性がどのように非表示にするかを決定します私の提出ボタン?

+0

あなたの応答はあなたのjQueryの成功コールバックに示すべきではなく、フォームを非表示にしたりしないように。 –

+0

成功のコールバックには何が記録されていますか? – Archer

+0

どうすればいいですか?私のAjaxの知識は限られています:( – user1286956

答えて

2

メッセージを返す代わりに、指示を返します。 (これに応じてJSスクリプトでメッセージを書きます)

詳細なjson文字列は良いアイデアですが、簡略化のために以下を参照してください。

PHP:

<?php 
require_once 'config.php'; 
$email_ck=$_POST['name']; 
if(extract($crud->get_email($email_ck))){ 
    echo "already_exists"; 
}else{ 
    echo 'not_exists'; 
} 
?> 

JS:

$.ajax({ 
    type: 'post', 
    url: 'action.php', 
    dataType: 'text', 
    data: { 
     'name':name 
    }, 
    cache:false, 
    success: function (data) { 
     if(data == 'already_exists'){ 
      $('#buttonId').hide(); 
     } else if(data == 'not_exists'){ 
      $('#msg').html('Response: ' +name); 
     } 
    } 
}); 
+0

Pefect。それは魅力のように働いていました。ありがとうございました^ _^ – user1286956

+1

私の答えを受け入れてください。ありがとう:) –

関連する問題