2012-02-23 11 views
0

私はデータをプルするために次のコードを使用していると何も起こりません。ここに私のPHPコードがあります。チタンAppcelerator - リモートデータを引き出す方法

$getall = "SELECT * FROM pages WHERE account_id=$id ORDER BY course_id";   
$showall = @mysqli_query ($dbc, $getall); // Run the query. 

$json = array(); 

if (mysqli_num_rows($showall) > 0) 
{ 

while ($row=$showall->fetch_assoc()) {  

     $json[]=array( 
    'logged' => true, 
     'pagename'=>$row['pagename'], 
     ); 

     } // end while 


header("Content-Type: text/json"); 
echo json_encode(array('pages' => $json)); 


} 

ここで私のJSコードは、アプリケーションを実行します。

sendit.open('GET', 'http://myurl.com/mypages.php'); 
sendit.send(); 
sendit.onload = function(){ 
    var json = JSON.parse(this.responseText); 
    var json = json.pages; 
    var dataArray = []; 
    var pos;  

    for(pos=0; pos < json.length; pos++){ 

     dataArray.push({title:'' + json[pos].pagename + ''}); 
     // set the array to the tableView 
     tableview.setData(dataArray); 
    }; 

};  

var tableview = Ti.UI.createTableView({ 
}); 

currentWin.add(tableview); 

私がアプリを実行すると、空白のテーブルが表示されます。どんな助けでも大歓迎です。

+0

json配列の長さかサンプルjson文字列をチェックしてください – Triode

答えて

0

それはなるだろうjavascriptの側のようにするには、別の配列にあなたの配列を埋め込んだ:

dataArray.push({title:'' + json.pages[pos].pagename + ''}); 
            ^^^^^ - missing level 
+0

私はこれを試しました...それは変更しませんでした。 –

0

あなたはit.sendを送信する前にsendit.onloadている必要があります。

sendit.onerrorメソッドと中間のTi.API.debug(stuff)を実装することをお勧めします。 また、jsonの宣言を2倍にしました。

+0

注文を変更しても機能しませんでした。同様に、私はスクリプト内にonerrorメソッドを持っており、それは私にエラーを与えていません。 –

+0

wiresharkのようなスニファがありますか?あなたはデバッグモードに入ることができますか? –

+0

試してみてください: 'dataArray.push(Ti.UI.createTableViewRow({title: '' + json [pos] .pagename + ''})); ' –

1

sendit.send();をの下に移動しようとしましたか?

onloadイベントにログを記録して、イベントがまったく実行されていることを確認してください。

docsには、それを登録するためにopenを呼び出す前にonloadを定義する必要があると記載されています。

関連する問題