2012-05-20 158 views
0

我寫如下:JavaScript函數執行

function loginName(txtLogin){ 
    var l = document.getElementById('txtLogin').value; 
    <?php 
     $query = sprintf("Select * from register where LoginName='%s'", 
         mysql_real_escape_string(l)); 

     //$query = "Select * from register where UserName=$Username and  Pwd=$Password"; 
     $result = mysql_query($query); 
     if($result) 
     { 
      $num_rows = mysql_num_rows($result); 
     } 
    ?> 
    if($num_rows < 1) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

,並調用該函數在onBlur事件如下:

$('#txtLogin').blur(function() { 
     if(loginName('txtLogin')) 
     { 
      //alert('Email is valid'); 
     } 
     else 
     { 
      alert('Type another login name.'); 
     } 
    }); 

但它沒有顯示錯誤,當我輸入相同的登錄名如database.please幫助中存在的那樣。

+1

太糟糕了,你不能將服務器端與客戶端混合在一起......你必須拆分該代碼 –

回答

0

您不能在<script>標籤內執行PHP標籤,因爲它只在客戶端執行,PHP是服務器端語言。取而代之,您需要使用AJAX來檢查用戶名的有效性。順便說一句,您直接複製&從某處粘貼您的代碼,因爲return不是方法之外的有效關鍵字。如果你熟悉jQuery(一個JavaScript庫),我建議你將它用於AJAX部分。

0

PHP代碼在頁面被解析的時候運行。如果您希望在執行JS函數時運行它,那麼您需要將PHP代碼寫入外部文件並通過AJAX調用它。

0

PHP在服務器上運行並輸出一些文本。

該文本然後被瀏覽器解釋爲HTML和JavaScript。

當您調用JavaScript函數時,其中的任何PHP都將已經運行。你不能像這樣將一個變量從JavaScript傳遞給PHP。

您必須提出新的HTTP請求(例如通過提交表單或使用Ajax)。