簡體   English   中英

PHP在Javascript中以注冊表格的形式(用於驗證)

[英]PHP inside Javascript in a registration form (for validation)

我正在為我的網站開發注冊表。 實際上,當訪客選擇用戶名時,將使用對我的MySQL DB的php查詢來控制它是否已被使用,如果已使用,則會顯示一個JavaScript窗口。 我可以在Javascript中使用PHP查詢來在表單附近發布實時通知(使用HTML5)嗎?

<script>
var username = document.getElementById('username');
var userdb = <? php control_username($username); ?>

var checkUsername = function () {
    if (userdb.value == true) {
        username.setCustomValidity('Username already used');
    } else {
        username.setCustomValidity('');
    }
};

username.addEventListener('change', checkUsername, false);
</script>

這是php函數:

<?php function control_username($username){
$db=connessione_db();
$query = "SELECT username FROM utente WHERE username = '$username';";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
mysql_close();

if($row[0]==$username){
    return TRUE;
 }
else{
    return FALSE;
}
$query=NULL;

}

我能怎么做?

您可以使用AJAXjQuery AJAX將請求發送到php頁面,檢查用戶名是否存在,返回結果,然后再次使用Javascript顯示。

這是jQuery示例:

<script>
    $.ajax({
        type: 'POST',
        url : 'checkUsername.php',
        data: {'username' : $('#username').html()},
        cache : false,
        success: function(data){
            if(data == 'exists')
                //username exists
                alert('username already exists!');
        },
        error: function(request , status , error){
            alert(request.resposeText);
        }
    });
</script>

這應該是您的checkUsername.php文件:

<?php
$db=connessione_db();
$query = "SELECT count(*) as count FROM utente WHERE username = '$username'";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
mysql_close();

if($row[count] > 0)
    echo 'exists';
else
    echo '';

PHP在服務器上運行,Javascript在客戶端計算機上運行。 一旦您的PHP腳本生成了一個頁面並將其發送給用戶,它就不再運行。 您的客戶端不了解PHP腳本。 它不能直接運行,調用或讀取有關您的PHP腳本的任何內容,因為它僅駐留在服務器上(決不在客戶端計算機上)。 但是,您的客戶的機器確實知道您的Javscript,因為它已經與頁面一起發送了。 如果要從頁面訪問PHP功能,則可以將GET / POST調用發送到服務器並重新加載頁面,也可以使用AJAX在后台進行調用。 查看Jquery對AJAX調用的實現,它使使用起來非常簡單。

不,你不能那樣做。 PHP是服務器端,JavaScript是客戶端。 Javascript被執行的時刻是代碼在客戶端運行。 所有PHP代碼都是固定的。 將其與HTML頁面中HTML和PHP的組合進行比較。 它也固定在那里。 同樣適用於Javascript中的PHP。

以下是有關stackoverflow的相關問題的一些答案: 如何將php放入javascript中? 如何在javascript中嵌入php?

這是ajaxref的示例,顯示了基礎知識: http ://ajaxref.com/ch3/asyncsend.html

這是另一個教程,展示了如何處理ajax調用: http : //code.tutsplus.com/articles/how-to-make-ajax-requests-with-raw-javascript--net-4855

我建議您先了解此過程,然后再開始使用類似jQuery的框架。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM