2016-05-31 11 views
0

Q.関数を持つ特定のPHPクラスにajaxから値を渡す方法はありますか?ユーザーが存在するかどうかに関係なく、登録フォームのユーザー名を検証するとします。ajaxからphpクラス関数への値の受け渡し

これは、ユーザー名を受け入れ、メッセージを表示するスパンタグを持つ単純なフォームです。

<form action="" method="POST"> 
 
    <input type="text" name="username"><span class="check"></span> 
 
    <input type="submit" name="signup"> 
 
</form>

とPHPクラスのために:

<?php 
 
    class User { 
 
    function isUserExist($username) { 
 
     $query = mysql_query("SELECT username FROM users WHERE username='$username'"); 
 
     $result = mysql_num_rows($query); 
 

 
     return ($result !== 0 ? true : false); 
 
    } 
 
    } 
 
?>

これは、データベースへの接続を確立するPHPクラスに初期化されます。 PHPページの呼び出しは、$ user-> isUserExist($ _ POST ['username']);のようになります。

フォームからajaxに値を渡してphpクラス関数に送ることは可能ですか?

答えて

1

HTMLからの

var username = $("input[name='username']").value; 

はAJAX &で取得AJAX、PHPに送信する(サーバー)

var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     //set your span to this -> xhttp.responseText; 
    } 
    }; 
    xhttp.open("POST", "your php script url", true); 
    xhttp.send("username="+username); 

は、サーバー(PHP)でそれを受信

$mUsername = $_POST['username']; 
echo $mUsername; 

より多くの助け Tutorial on PHP + AJAX

+0

ために、このチュートリアルを読んで、あなたは私にこれでいくつかの説明を与えることはできますか?私はまだAjaxについて全く新しいです。 –

+0

w3schoolsでそれについて読む。かなりシンプルできちんとした説明。私たちはここで何をしているのですか?リクエストXmlHttpRequestを作成し、その変更ステータスの変更を待ちます(readyState == 200は良いことを意味します)。 paramsを入れてsendメソッドを使って送信します。 – cafebabe1991

+0

私はそれを試しました。しかし、どのようにクラス内の関数を呼び出すか?私は '$ username = $ _POST ['username'];をクラスの前に宣言してグローバルにしますが、ユーザ名は定義されていません。 –

0
Try this, 

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("input[name = 'signup']").click(function(e) { 
     var username = $("input[name = 'username']").val(); 
     $.ajax ({ 
      url: "isUserExist_function_existing_file.php", 
      data: { username : username }, 
      success: function(result) { 
       if(result) 
        alert("Name allready Exist"); 
       else 
        alert("Name available"); 
      } 
     }); 
    }); 
}); 
</script> 
+0

ファイルの名前はuserです。php。クラス 'User();'の 'isUserExist($ username)'関数にどうやってアクセスできますか?クラスの中にはもっと多くの関数があるので、どのようにして特定の関数を呼び出すことができますか? 、 "ユーザー/ isUserExist" または(ISSET($ _POST [ 'ユーザー名'])){ $ユーザ=新しいユーザー()場合 を試してみてください;: –

+0

あなたはURLのような機能にアクセスできます $ result = $ user-> isUserNameExist($ _ POST ['username']); return $ result; } –

+0

phpファイルのパスが必要なので動作しないと思います。クラス内の関数を呼び出すことは私が必要なものです。 –

関連する問題