JS函数只返回未定义的数据,但alert输出正确的数据
JS function only returns undefined but alert outputs correct data
所以我有一个Javascript函数,它从PHP文件中获取名字和姓氏,然后返回值。当此警报时,它确实会产生正确的值,但在返回并调用此变量后,它会产生未定义的值:
function getname(username){
var output="";
$.ajax({
url: 'getusername.php?username='+username,
type: "GET",
dataType: "text",
success: function(data){
output += data;
alert(output);
return output;
}
});
}
因此,上面的警报(输出)在警报中生成名称:"John Doe"。现在,当我在另一个函数中调用这个函数时:
var username = 'jdoe';
var uname='';
uname += getname(username);
alert("Username: "+username+"'nName: "+uname)
这将输出Username:jdoe Name:undefined。我已经尝试了多种方法,但当它在警报中正确输出时,返回的值似乎是未定义的。
我曾试图将变量定义为字符串,然后在其后添加值,但没有成功,我在这里缺少什么?感谢
您可以这样做:
试试这个:
var username = 'jdoe';
getname(username).done(function(data) {
uname += data;
alert("Username: "+username+"'nName: "+uname)
}
function getname(username) {
return $.ajax({
url: 'getusername.php?username='+username
});
}
async: false
使调用同步,或者将AJAX承诺返回给将解析该值的调用函数。
所以这将工作
function getname(username){
return $.ajax({
url: 'getusername.php?username='+username,
type: "GET",
dataType: "text"
});
}
function callingFunction() {
var name = getname(username);
name.done(function(data) {
/* Perform your operation with the data */
});
}
试试这个:
function getname(username){
var output="";
$.ajax({
url: 'getusername.php?username='+username,
type: "GET",
dataType: "text",
async: false,
success: function(data){
output += data;
alert(output);
}
});
return output;
}
不过,上面的版本应该可以使用。这里还有回调版本:
function getname(username, callback){
var output="";
$.ajax({
url: 'getusername.php?username='+username,
type: "GET",
dataType: "text",
success: function(data){
output += data;
alert(output);
callback(output);
}
});
}
Call gename() as:
getname(your_user_name, function(output){ // this output refers to the value output
console.log(output); // sent from above line callback(output).
})
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- JS函数只返回未定义的数据,但alert输出正确的数据
- 用于表单验证的 jQuery post 函数只允许 alert() 显示返回的数据
- 如果用户在收到提示后将任何信息留空,我如何从 Javascript 的输出 (window.alert) 中排除该数据
- window.alert消息未显示Sqlite行数据
- jQuery:不是Alert,而是Fadin数据