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を使用できることを知っているが、私はそれを試してみましたが、作業それを得ることができませんでした。何か案は?
おかげで...
を参照してくださいJSONParserのみJSON値に文字列を解析できるように私には思える...これで私は間違っていますか? – littleK
私はあなたが提案したようにXMLを使用しようと考えています。 http://www.ibm.com/developerworks/opensource/library/x-gwtphp/index.html?ca=drs- – littleK
はい、文字列を解析します。それがあなたが望むものです。 PHPでは配列をJSON文字列に変換し、GWTでそのJSON文字列を解析してデータ構造に戻します。私はXML上でこれを選択するだろう - それはより簡単でなければならない。 –