0

私はここでJQueryでいくつかの状況を得ました。外部リソースから取得した json データをローカル配列変数に追加したいと考えています。しかし、それはうまくいきません。ここにいる皆さんは、私のコードの論理エラーを見て、より良い解決策を見つけることができるかもしれません。どうもありがとう。

ここに私のコードがあります:

var form_data =
    {
        email : $("#signup_email").val(),
        browser_agent : browser_agent,
        browser_version : browser_version,
        os : os
    }

    $.getJSON( "http://smart-ip.net/geoip-json?callback=?", function(data){ 

        form_data.ip = data.host; 
        form_data.countryName =  data.countryName; 
        form_data.region = data.region; 
        form_data.city = data.city; 
    });

    console.log(form_data);

結果:

Object {email: "myemail@gmail.com", browser_agent: "chrome", browser_version: 30, os: "Win32"} 

しかし、私はこのような結果を期待しています:

Object {email: "myemail@gmail.com", browser_agent: "chrome", browser_version: 30, os: "Win32", ip:"192.168.xx.xx", countryName : "indonesia", region : "West Java", city : "batavia"}

何か提案はありますか?ありがとう

4

2 に答える 2

0

最後に、私は解決策を見つけます。みんなありがとう

...
var form_data = { email : $("#signup_email").val(), browser_agent : browser_agent, browser_version : browser_version, os : os, device : device }

get_user_geolocation(function (data){
form_data.ip = data.host; //ip
form_data.countryName = data.countryName; // negara
form_data.region = data.region; //provinsi
form_data.city = data.city; //kota
console.log(form_data)
sign_up(form_data);
});
...
});

});

function get_user_geolocation(callback)
{
$.ajax({
url: "http://smart-ip.net/geoip-json?callback=?",
type: "GET",
dataType: "json",
success: function(data){
callback(data);
}
});
}

function sign_up(form_data)
{
$.ajax({
url: "signup_process.php", 
data: form_data, 
type: "POST", 
dataType: "json",
}).done(function(data) {
alert(data);
}).fail(function(data){
alert("server error");
});

}

于 2013-10-12T15:07:07.690 に答える
0

getJSON 応答関数で console.log を使用する

$.getJSON( "http://smart-ip.net/geoip-json?callback=?", function(data){ 

    form_data.ip = data.host; 
    form_data.countryName =  data.countryName; 
    form_data.region = data.region; 
    form_data.city = data.city; 
    console.log(form_data);
});
于 2013-10-12T13:19:13.270 に答える