0

関数がundefinedを返しましたが、探しているデータを見つける方法がわかりません。

function getCustomerName(){

       var account = localStorage.getItem("account");

       $.post("http://127.0.0.1/getCustomer.php", {account:account}, function(data) {

              alert('Inside getCustomer' + ' ' + data);

       } ,"json");

}

getCustomer.phpが返す間

{"nameCustomer":[{"Alarms":"0","Name":"Jane Doe"}]}

どんな助けでもいただければ幸いです。

4

2 に答える 2

0

JavaScriptは実際には問題ないように見えます。そこにコールバック関数があります。datatypeパラメータは、サーバーに送信されるパラメータタイプではなく、サーバーから返されるリターンタイプを指定することに注意してください。サービスがJSONをパラメーターとして期待していることを確認してください。accountまた、フォームlocalStorageの取得が有効な値を正しく返していることを確認してください。

于 2013-01-18T17:26:55.957 に答える
0

呼び出しは非同期であるため、getCustomerNameの実行が終了すると、データはサーバーから返されません。getCustomerNameはコールバック関数を受け取る必要があります:

function getCustomerName(onNameRetrieved){
   var account = localStorage.getItem("account");

   $.post("http://127.0.0.1/getCustomer.php", {account:account}, function(data) {
       onNameRetrieved(data) //or more likely something like onNameRetrieved(data['nameCustomer'][0]['name'];
   } ,"json");
}

次に、getCustomerNameを次のように呼び出します

getCustomerName(function (name) {
    alert('The actual name is ' + name);
})
于 2013-01-18T18:09:46.503 に答える