GWT PHP bir dizi gönderme Soru

1 Cevap php

Ben başarılı benim web sunucusu üzerinde bir PHP komut dosyası (bir tarih olarak biçimlendirilmiş) bir dize gönderir GWT bir RequestBuilder (1.6) kullanıyorum. Benim PHP sonra Dize bir MySQL veritabanı sorgulamak için kullanır. Ben sonra başarıyla GWT tarafından yorumlandığı bir sonuç, yankı mümkün duyuyorum.

Benim sorun ben sadece geri bir dize "echo" istemiyorum olmasıdır. Ben geri GWT bir Array göndermek istiyorum. Burada sorun, GWT bir türü nesne 'Tepki' değil, Array alır olmasıdır.

Ben ne yapabilirim bilen var mı? İşte bazı kod:

 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";

 ?>

GWT Kodu (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

 }

JSON kullanabilirsiniz biliyorum, ama ben bunu denedim ve çalışmıyor alamadı. Herhangi bir fikir?

Teşekkürler ...

1 Cevap

Çizgi echo "$array"; olacak sadece çıkış 'dizi' veya benzer. Sen kullanarak, örneğin, JSON veya XML geri gönderiyor bakmak olabilir json_encode() , örneğin

echo json_encode($array);

Ben GWT oldukça kolay bu ayrıştırma hayal ediyorum - bkz JSONParser