![](/img/trans.png)
[英]How to accessing client side javascript variable from server side nodejs?
[英]How to change client side javascript 's variable from server side?
我從某個網站的登錄頁面代碼中汲取了靈感。 我找到了一個我不知道如何實現的功能。
該登錄頁面使用兩種輸入控件的形式收集用戶名和密碼:
<form method="post" runat="server" action="myLogin.aspx">
<input type="text" class="us_name" name="txtUserName" id="txtUserName" value="" />
<input type="password" class="us_pwd" name="txtPassword" id="txtPassword" value="" />
</form>
在該頁面中,我還找到了一些類似以下的JQuery代碼:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
var error = 0;
if (error > 0) {
switch (error) {
case 1:
$("#ListMsg").html("username and pwd can not be empty");
$("#txtUserName").focus();
break;
case 2:
$("#ListMsg").html("Pic code can not be empty");
$("#txtCheckCode").focus();
break;
case 3:
$("#ListMsg").html("Pic code err");
$("#txtCheckCode").focus();
break;
case 36006:
$("#ListMsg").html("username err");
$("#txtCheckCode").focus();
break;
case 36007:
$("#ListMsg").html("password err");
$("#txtCheckCode").focus();
break;
case 20012:
$("#ListMsg").html("account is lock");
$("#txtCheckCode").focus();
break;
case 10007:
$("#ListMsg").html("can not access");
$("#txtCheckCode").focus();
break;
default:
$("#ListMsg").html("username or password err");
$("#txtPassword").focus();
break;
}
}
});
上面的代碼似乎是在登錄失敗時顯示錯誤消息,但是請注意以下語句:
var error = 0;
當我輸入錯誤的密碼並查看頁面源代碼時,我發現它已自動更改為:
var error = 36007;
我猜想登錄失敗時必須由服務器端代碼更改此變量,並使用它來指示失敗原因。 但是我不知道服務器如何設置客戶端JQuery變量的值,有人可以舉一個例子嗎?
您可以使用ajax來促進腳本和php服務器之間的通信,而無需更改頁面。 當用戶單擊登錄按鈕時,您可以將其輸入值作為ajax帖子發送。 考慮以下示例:
$( '#btn-login' ).click( function () {
$.ajax({
url: "your.server.address/function_that_sends_those_codes",
data: {
userID: $( '#txtUserName' ).val(),
pwd: $( '#txtPassword' ).val()
},
type: 'POST',
dataType: 'JSON',
success: function ( response ) {
error = response.errCode; //or whatever your server
//sends
},
error: function ( errorMsg ) {
console.log( errorMsg );
}
});
});
在您的php代碼中,您檢索使用$_POST[ 'userID' ]
和$_POST[ 'pwd' ]
。 您可以通過與數據庫進行交互來計算代碼,然后執行以下操作:
echo json_encode( array( yourErrorCode ) );
“ yourErrorCode”作為“響應”發送到您的“成功”回調函數。 您可以在瀏覽器的控制台中查看收到的響應或引發的任何錯誤。
快樂的編碼:)
要從后面的代碼中設置javascript變量,您可以注冊客戶端腳本 。 像這樣:
ScriptManager.RegisterStartupScript(this, this.GetType(), "", "error = 36007;", true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.