我如何从jsonp响应中获取值并将该值设置为其他函数中的其他变量?

时间:2014-06-20 14:09:08

标签: javascript jquery jquery-mobile cordova

如何从jsonp响应中获取变量值并在其他脚本函数中使用它? 在第一个函数中,我有一个值来自jsonp响应。我在第一个函数中将此值赋给变量(var userId)。

如何获取userId值并在第二个脚本函数中使用它???

<script>
$(document).on('pageinit', '#login', function () {
$(document).on('click', '#submit', function () { 
    if ($('#username').val().length > 0 && $('#password').val().length > 0) {
        console.log($('#check-user').serialize());
        $.ajax({
            url: 'http://localhost/check.php',
            data: $('#check-user').serialize(),
            type: 'POST',
            beforeSend: function () {
            $.mobile.showPageLoadingMsg(true); 
            },
            complete: function () {
            $.mobile.hidePageLoadingMsg(); 
            },
            success: function (result, status, err) {
            if(result.login){
                    $.mobile.changePage( "#output", { transition: "slideup", changeHash: false });
var userID = //// HERE I NEED TO GET USER ID FROM  jsonp response!!!!

            });
            }
            else{
                alert("An error occurred: " + status + "nError: " + err.status);
            }
            },
            error: function (request, error) {
            }
        });
    } else {
        alert('Please fill all necessary fields');
    }
    event.preventDefault(); 
});

var output = $('#output');
var userid = ////HERE I NEED TO SET USER ID!!!!!!!!!!!!
$.ajax({
    url: 'http://localhost/data.php?user='+userid,
    dataType: 'jsonp',
    jsonp: 'jsoncallback',
    timeout: 5000,
    success: function(data, status){
        $.each(data, function(i,item){ 
            var landmark = '<h1>'+item.name+'</h1>'
            + '<p>'+item.lat+'<br>'
            + item.long+'</p>';

            output.append(landmark);
        });
    },
    error: function(){
       output.text('There was an error loading the data.');
    }
});
});
</script>  

1 个答案:

答案 0 :(得分:1)

您可以使用js

的全局变量赋值功能

在任何函数之外声明你的变量。

<script>
var userId;
function foo(){
  //..
}
</script>

或使用window对象从函数内部分配全局变量

<script>
function foo() {
    window.userID = ...;
}
</script>

更多可用信息here