-3

提供された電子メールアドレスに対応する姓を取得する JavaScript 関数を作成しようとしていますが、これまでのところ成功していません。これが私のコードです:

function getUsername(){

var username;

$(function(){
    var dataString = 'email=' + EMAIL_ADDRESS;

    $.ajax({
        url: 'user_crud_operations.php',
        data: dataString,
        dataType: 'json',
        success: function(data){
            U = data[1];
            username = data;          
        }
    });  
 });

return username;

}

取得したユーザー名を別の関数で使用する必要があります。どこが間違っていますか?

4

1 に答える 1

0

Asynchronous functions (as used in AJAX) usually do not return values but instead trigger callback functions.

You must restructure your design so that "getUserName()" passes to a callback instead of returning a value. For example:

function getUsername(handler) {
  // ...
  $.ajax({
    // ...
  }).done(function(username) {
    if (handler && (typeof(handler)==='function')) {
      handler(username);
    }
  });
}

// Sample usage...
getUsername(function(username) {
  alert("OK: username=" + username);
});
于 2013-08-26T21:34:20.277 に答える