2016-05-31 30 views
0

問:有沒有辦法將值從ajax傳遞給具有函數的某個php類?假設在註冊表單上驗證用戶名是否存在。將值從ajax傳遞到php類函數

這是一個簡單的表單,它將接受用戶名並具有span標記以顯示消息。

<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; 

取在阿賈克斯&它發送到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意味着很好去)。然後我們把參數,併發送使用發送方法。 – 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

該文件的名稱是用戶。PHP。我怎樣才能訪問'User();'類的函數'isUserExist($ username)'?班內有更多的功能,所以我怎樣才能調用特定的功能? –

+0

您可以訪問功能類似URL: 「用戶/ isUserExist」, 或嘗試 如果(isset($ _ POST [ '名'])){$ 用戶=新用戶(); $ result = $ user-> isUserNameExist($ _ POST ['username']); 返回$結果; } –

+0

我不認爲它會工作,因爲PHP文件的路徑是需要的。在類中調用函數是我需要的。 –