
[英]My global variable doesnt get value from $.post function javascript
[英]How to save value from JQuery $.post to a Javascript Global Variable
我正在使用Javascript和JQuery。
我有以下变量var RoleID="";
并且我将其放置在所有功能之外。
我有一个功能
role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
var RoleID=data;
alert(RoleID);
})
}
此函数获取<input type="text" id="emp_role">
并使用JQuery $.post
提交到url='submitrole.php'
并从url='submitrole.php'
中获取ID 。返回值,该值将保存在RoleID
并在之后RoleID
。 使用<button onclick="role_submit();" type="submit">Submit</button>
执行所有操作 <button onclick="role_submit();" type="submit">Submit</button>
并可以正常工作,这意味着应该来自url='submitrole.php'
的ID会准确到来,并且也会得到准确提醒。
var RoleID
var RoleID
function alert_roleID(){alert(RoleID);}
我使用
<button onclick="alert_roleID();" type="submit" >Role ID</button>
这次警报弹出,除了显示我从url='submitrole.php'
取回的ID之外,什么都没有显示。 如何从url='submitrole.php'
获取全局变量RoleID
的值?
有两种方法。
将变量明确设置为窗口。 Window
是全局范围。
function role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
window.RoleID=data;
alert(RoleID);
})
}
或在全局范围内定义变量。 如果以这种方式进行操作,请确保在重新定义它时不使用var
。 如果使用var
它将使新变量仅在该范围(函数)中可见。
var RoleID;
function role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
RoleID=data;
alert(RoleID);
})
}
一旦在外部声明了变量,就不应在函数内部再次使用'var',因为这将重新创建局部范围的变量,而不是全局范围的变量,并且在函数外部不可访问。 因此,您可以按以下方式删除“ var”,
var RoleID = '';
role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
RoleID=data;
alert(RoleID);
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.