2011-06-23 17 views
0

Sencha TouchでPHPを使用して生成されたJSONデータをキャプチャするにはどうすればよいですか?誰もそれについて良いチュートリアルを知っていますか?Sencha Touchを使用してJSONデータを取得する

私は私のJSONデータ(getEvents.phpによって生成された)のようなものです

Ext.util.JSONP.request({ 
    url: 'proc/getEvents.php', 
    callbackKey: 'callback', 
    callback: function(data) { 
     var lists = data.results; 
     timeline.update(lists); // Update events lists 
    } 
}); 

以下のコードを使用してJSONデータを取得しようとしている:

{ 
    "sample":[ 
     { 
     "id":"1", 
     "name":"131\/E Address", 
     "desc":"This is where I live!!", 
     "lat":"0", 
     "lon":"0", 
     "starttime":"0", 
     "endtime":"0", 
     "flag":"0" 
     }, 
     { 
     "id":"2", 
     "name":"INOX", 
     "desc":"Central Mall", 
     "lat":"0", 
     "lon":"0", 
     "starttime":"0", 
     "endtime":"0", 
     "flag":"0" 
     } 
    ] 
} 

今、私はそれを表示したいですテンプレートで

tpl: [ 
     '<tpl for=".">', 
      '<div class="details">', 
       '<h2>{name}</h2>', 
       '<p>{desc}</p>', 
      '</div>', 
     '</tpl>' 
    ] 

誰でも問題がどこにあるのか理解できますか?私のjavascriptコンソールは(getEvents.phpを使って)

Resource interpreted as Script but transferred with MIME type text/html. 
getEvents.php:1Uncaught SyntaxError: Unexpected token : 

答えて

2

あなたはPHPのサーバがJSONPではなく、普通のJSONで応答する必要があります。 'P'はJSONと埋め込みを意味します。 callbackKeyあなたは次のようにPHPによって生成されるニーズを指定:

callback({"sample":[ 
    { 
    "id":"1", 
    "name":"131\/E Address", 
    "desc":"This is where I live!!", 
    "lat":"0", 
    "lon":"0", 
    "starttime":"0", 
    "endtime":"0", 
    "flag":"0" 
    }, { /*---etc---*/ }); 

をまた、MIMEタイプの問題は、PHPで、離れて行くあらゆるエコーまたはプリントを成し遂げる前にこのコードを配置するために:

header('Cache-Control: no-cache, must-revalidate'); 
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // never, ever cache 
    header('Content-type: application/json'); 
1

JSONを使用している間、私は

をしたJSONPに移動すると、これは

echo utf8_encode(json_encode($json)); 

の作品3210

関連する問題