2009-07-10 18 views
1

GWT(1.6)のStringを(日付としてフォーマットされた)StringをWebサーバのPHPスクリプトに正常に送るRequestBuilderを使用しています。私のPHPはその文字列を使用してMySQLデータベースを照会します。私はGWTによって正常に解釈された結果をエコーすることができます。PHPからGWTへの配列の送付に関する質問

私の問題は、単に文字列を "エコー"したくないということです。配列をGWTに送り返したい。ここでの問題は、GWTが配列ではなく、 '応答'タイプのオブジェクトを取得することです。

誰でも私ができることを知っていますか?

PHP CODE: 

<?php 
require_once('../scripts/config.php'); 

$date = $GLOBALS['HTTP_RAW_POST_DATA']; 

$query = mysql_query("SELECT * FROM eventcal WHERE eventDate = '$date'"); 

if (@mysql_num_rows($query)) { 
    while ([email protected]_fetch_assoc($query)) { 
     $id = $r["id"]; 
     $primary = $r["primary"]; 
     $secondary = $r["secondary"]; 
     $eventContent = $r["eventContent"]; 
     $region = $r["region"]; 

    } 
} 

$array = array("$id", "$primary", "$secondary", "$eventContent", "$region"); 

echo "$array"; 

?> 

GWTコード(スニペット):ここではいくつかのコードです

public void onChange(Widget sender) { 
lb.setText("Date selected: " + calendar.getDate()); 
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
String current = df.format(calendar.getDate()); 

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode("http://www.kbehr.com/calendar/view_duty.php")); 

try { 
    builder.sendRequest(current, new RequestCallback(){ 
    public void onError(Request request, Throwable exception) { 
     requestFailed(exception); 
    } 

    public void onResponseReceived(Request request, Response response) { 

     String responseText = response.getText(); 
     try { 
      processResults(responseText); 
     } catch (Exception e) { 
      Window.alert(responseText); 
     } 

    }}); 
}catch (RequestException ex) { 
    requestFailed(ex); 
}  

}}); 
fp.add(calendar); 
fp.add(lb); 

} 

private void processResults(String something){ 

    // process the array 

} 

私はJSONを使用できることを知っているが、私はそれを試してみましたが、作業それを得ることができませんでした。何か案は?

おかげで...

答えて

1

ラインecho "$array";意志だけ出力 '配列' または類似しました。例えば、を使用して、JSONまたはXMLを返すことができます。

echo json_encode($array); 

私はあなたがGWTで非常に簡単にこれを解析することができることを想像 - JSONParser

+0

を参照してくださいJSONParserのみJSON値に文字列を解析できるように私には思える...これで私は間違っていますか? – littleK

+0

私はあなたが提案したようにXMLを使用しようと考えています。 http://www.ibm.com/developerworks/opensource/library/x-gwtphp/index.html?ca=drs- – littleK

+1

はい、文字列を解析します。それがあなたが望むものです。 PHPでは配列をJSON文字列に変換し、GWTでそのJSON文字列を解析してデータ構造に戻します。私はXML上でこれを選択するだろう - それはより簡単でなければならない。 –