Question avec l'envoi d'un tableau de PHP à GWT
-
12-09-2019 - |
Question
J'utilise un RequestBuilder GWT (1.6) qui envoie avec succès une chaîne (formatée comme une date) à un script PHP sur mon serveur web. Mon PHP utilise ensuite cette chaîne pour interroger une base de données MySQL. Je suis alors en mesure de faire écho à la suite, ce qui est interprété avec succès par GWT.
Mon problème est que je ne veux pas juste « echo » retour d'une chaîne. Je veux envoyer un tableau retour à GWT. Le problème ici est que GWT obtient un objet de type « réponse », et non pas de tableau.
Quelqu'un sait-il ce que je peux faire? Voici un code:
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 ($r=@mysql_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";
?>
Code de GWT (Snippets):
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
}
Je sais que je peux utiliser JSON, mais j'ai essayé et ne pouvait pas le faire fonctionner. Toutes les idées?
Merci ...
La solution
La echo "$array";
ligne sera juste sortie « tableau » ou similaire. Vous pouvez regarder renvoyer JSON ou XML, par exemple en utilisant json_encode()
, par exemple.
echo json_encode($array);
Je suppose que vous pouvez analyser assez facilement dans GWT - voir JSONParser