2011-06-21 11 views
0

私がやろうとしているのは、自分のAjaxリクエストにあるbadgetext番号の情報を取得することです。sencha touchの変数にajaxリクエストを取得するにはどうすればいいですか?

ここで私はそれをやろうとしています。これは単純なようですが、私はそれを把握できません。

Ext.Ajax.request({ 
     url: '../lib/messages.php', 
     success: function(response, opts) { 
     var badge_number = Ext.decode(response.responseText); 
     console.dir(badge_number); 
}, 
    failure: function(response, opts) { 
    console.log('server-side failure with status code'); 
} 
}); 

    var buttonsGroup1 = [{ 
     text: 'Messages', 
     //badge_number variable from ajax request would go here. badgeText: '2', 
     handler: tapHandler 
    }]; 
+0

ここにはあまり行きません。 PHPスクリプトのレスポンスは何ですか? JSのデバッグツールを使用して、Chrome/Safariでページを開いてテストします。サーバーが何を応答しているのかを確認し、成功関数の状態を調べることができます。 – mistagrooves

+0

@mistagrooves私はちょうど番号を返すPHPスクリプトを持っている。サーバーは正常に応答し、成功関数はデータを検索します。しかし、私は、成功関数は、PHPスクリプトからbadgeTextになるデータを取得します。私の問題は、変数buttonsGroup1にあるbadgeTextにそのデータを入れる方法がわからないことです。 – Alex

+0

Hey plsはこれを通過します。http://stackoverflow.com/questions/9563417/how-to-consume-soap-web-service - インセンカ - タッチ とあなたの貴重な応答を与える... – himanshu

答えて

1

ああ、私は質問を誤解しました。

ボタンにバッジテキストを配置する最も簡単な方法は、closureを作成することです。

var button = new Ext.Button({ 
    text: 'Messages', 
    handler: tapHandler}); 

Ext.Ajax.request({ 
    .... 
    success: function(response, opts){ 
    button.setBadge(Ext.decode(response.responseText)); 
    } 
    ... 
}); 

これにより、AJAXコールが完了すると、バッジテキストが更新されます。以前と同じように、AJAXリクエストコードの後に​​オブジェクトをパネルまたはツールバーに追加することができます。

作成する前に必ずバッジテキストをボタンに付ける必要がある場合は、成功関数内にボタングループを作成し、それを適切なコンテナオブジェクトに割り当て/追加する必要があります。

+0

その完璧に働いた。私がパネルや他の何かを更新していた場合、同じ方法が使われるという好奇心から逃れています。 – Alex

+0

@Alexええ、あなたも同じようにそれをすることができます。 Ext.getCmp( "id")やthis.items.getAt(n)のように、別のメソッドで更新が必要なコンポーネントへの参照を見つけることもできます。それは本当に状況に依存します。 – mistagrooves

+0

こんにちはplsはこれを通過http://stackoverflow.com/questions/9563417/how-to-consume-soap-web-service-in-sencha-touch あなたの貴重な応答を与える... – himanshu

関連する問題