2016-04-23 66 views
0

我正在爲我的網站製作註冊表格,我不希望它在所有字段都正確之前提交。如何從Javascript中選擇mysqli?

Html。

<div id="register-error"></div> 
<form action="" method="POST" id="register-form"> 
    <input type="text" id="fn" placeholder="Full Name"> 
    <input type="text" id="un" placeholder="Username"> 
    <input type="text" id="em" placeholder="Email"> 
    <input type="password" id="pswd" placeholder="Password"> 
    <input type="password" id="pswd2" placeholder="Repeat Password"> 
    <input type="submit" id="register" class="login loginmodal-submit" value="Register"> 
</form> 

PHP的。

$("#register-form").submit(function(){ 
    var name = $("#fn").val(); 
    var username = $("#un").val(); 
    var email = $("#em").val(); 
    var password = $("#pswd").val(); 
    var password2 = $("#pswd2").val(); 
    if(fn&&un&&em&&pswd&&pswd2){ 

     // check if the username exist 

    } 
    else 
    { 
     $("#register-error").html("Please fill in all fields"); 
     return false; 
    } 
}); 

現在我需要檢查用戶名是否存在於我的數據庫中。
如果用戶名確實存在,則會再次返回false並打印出錯信息。

Sql。

`id` int(11) NOT NULL AUTO_INCREMENT, 

`name` varchar(255) NOT NULL, 

`username` varchar(255) NOT NULL, 

`email` varchar(255) NOT NULL, 

`password` varchar(255) NOT NULL, 

我可以在PHP函數中包含php嗎?

+0

不,你必須通過AJAX發送填充用戶名的PHP頁面,檢查將發生,真或假的意志返回。基於此,您必須停止表單提交或張貼表單 –

回答

1

沒有必要包含PHP。

在你if聲明:

if(fn&&un&&em&&pswd&&pswd2){ 
    // check if the username exist 
} 

你需要一個AJAX請求添加到您的PHP服務器來檢查用戶名的合法性。由於您已經在使用jQuery,因此您可以在這裏閱讀有關AJAX功能的更多信息 - http://api.jquery.com/jquery.ajax/

0

您無法使用JavaScript直接從瀏覽器的mysql中獲取數據,但有幾種方法可用於獲取SQL數據在網頁上。

將數據轉儲到標籤。

您可以使用json_encode()將數據從PHP傳遞到JavaScript,以便稍後在腳本中使用。然而,這不會基於你的SQL數據而改變,而你可能想要檢查一下這是否安全。在某些情況下,它可能不是。

<script type="text/javascript"> 
    var data = <?php json_encode($data); ?>; 
</script> 

使用XHR/AJAX

你可以把它產生的JSON像json_encode()上述聲明一個PHP文件,然後使用JS/jQuery來加載此數據。這可以更改爲在沒有重新加載的情況下動態更改,儘管您需要在數據更新之前發出請求。

PHP

[...] 
echo json_encode($data); 

JS(使用jQuery)

$.get('/file.php', function (data) { 
    // TODO: Update the data. 
});