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 ...

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top