In the PHP, I do something like this:

    $result_array = array();

    while($row = mysql_fetch_assoc($result))
    {
        $result_array[] = $row;
    }
    $data["result"]                             =   $result_array;

    die(urlencode(json_encode($data)));

Then in the GWT:

        final String decodedText = URL.decodeComponent(responseText);

        try
        {
            data = JSONParser.parse(decodedText).isObject();
        }
        catch (final Exception e)
        {
            // Error code here
        }

        result = data.get("result").isArray();
        final int count = result.size();

        for(int i = 0; i < count; i++)
        {
            final JSONObject o = result.get(i).isObject();

            // Process individual object (i.e. one database result line)
here
        }


Ian

http://examples.roughian.com


2009/6/10 ANDRES BRUN <[email protected]>

> Hi Ian
> Thank you for your answer, I think that I'm not walk for the wrong way but
> haven't the results that I hope, this is my code:
>
> PHP
> <?php
> //Incluir JSON.php
> require_once("JSON.php");
>
> //Consulto la Base de Datos MySQL y obtengo los resultados
>
> $conector = mysql_connect('localhost','root','doyan2009') or
> die(mysql_error());
> mysql_select_db('music_princess') or die(mysql_error());
>
> $sqlQuery = "select * from tracks order by artista";
>
> $dataReturned = mysql_query($sqlQuery) or die(mysql_error());
>
> $i = 0;
>
> while($row = mysql_fetch_array($dataReturned)){
>
>   $value{"item"}{$i}{"ruta_archivo"}=$row['ruta_archivo'];
>   $value{"item"}{$i}{"artista"}=$row['artista'];
>   $value{"item"}{$i}{"track"}=$row['track'];
>   $i++;
> }
>
> $json = new Services_JSON();
> $output = $json->encode($value);
> print($output);
>
> ?>
>
> GWT
>
> import com.google.gwt.user.client.HTTPRequest;
> import com.google.gwt.user.client.ResponseTextHandler;
> import com.google.gwt.user.client.ui.Grid;
> import com.google.gwt.user.client.ui.TextBox;
> import com.google.gwt.user.client.ui.Label;
> import com.google.gwt.user.client.ui.Button;
> import com.google.gwt.user.client.ui.FocusPanel;
> import com.google.gwt.user.client.ui.HTML;
> import com.google.gwt.user.client.ui.ClickListener;
> import com.google.gwt.user.client.ui.Widget;
>
>
>
>
>
> public class PSEscucharMusica {
>
> /*
>  *    The URL where we go to do the search.
>  */
>   private String DEFAULT_SEARCH_URL = "
> http://localhost:90/GWT/PSMusic/CargarLista.php";;
>
> /*
>  *   Some widgets that we go to need.
>  */
>
>   private Button b1 = new Button();
>   private Grid gdOut = new Grid(2,1);
>   private Grid childGrid = new Grid(5,2);
>
>   private int itemNumber = 0;
>
>
>   public Widget initializeMainForm() {
>
>   /*
>    *  Here we initialize and setup a panel for use it as container for the
> search form and
>    *  the results.
>    */
>
>   FocusPanel fpn = new FocusPanel();
>   Grid gd = new Grid(3,2);
>
>   b1.setText("Cargar Lista");
>   b1.addClickListener(new SearchButtonClickListener());
>    gd.setWidget(2, 0, b1);
>
>   gdOut.setWidget(0,0,gd);
>
>   gdOut.setBorderWidth(1);
>       gdOut.setWidth("280px");
>
>       childGrid.setCellPadding(0);
>   childGrid.setCellSpacing(0);
>   childGrid.setWidth("490px");
>
>   fpn.add(gdOut);
>
>   return fpn;
>   }
>
>
>   private class SearchButtonClickListener implements ClickListener {
> /*
>  *  (non-Javadoc)
>  * @see
> com.google.gwt.user.client.ui.ClickListener#onClick(com.google.gwt.user.client.ui.Widget)
>  */
>       public void onClick(Widget sender) {
>       /*
>        * When the user click the button we fetch the URL.
>        */
>       itemNumber = 0;
>       doFetchURL();
>     }
>
>
>   private void doFetchURL() {
>   /*
>    * Here we fetch the URL and call the handler
>    */
>   b1.setText("Cargando ...");
>     if (!HTTPRequest.asyncGet(DEFAULT_SEARCH_URL, new
> JSONResponseTextHandler())) {
>
>     b1.setText("Search");
>     }
>  }
>   }
>
>   private class JSONResponseTextHandler implements ResponseTextHandler {
>   /*
>    *  (non-Javadoc)
>    * @see
> com.google.gwt.user.client.ResponseTextHandler#onCompletion(java.lang.String)
>    */
>
>   public void onCompletion(String responseText) {
>  /*
>  *  When the fetch has been completed we parse the JSON response and
>  *  display the result
>  */
>
>   JSONObject jsonObject;
>       try {
>         jsonObject = JSONParser.parse(responseText);
>         displayJSONObject(jsonObject);
>
>       } catch (JSONException e) {
>
>       }
>
>         b1.setText("Cargar");
>
>     }
>
>
>
>     private void displayJSONObject(JSONObject jsonObject) {
>     /*
>      * Here we clear the grid and fill it with the new values.
>      */
>      childGrid.clear();
>     requestChildrenGrid(jsonObject);
>      gdOut.setWidget(1,0,childGrid);
>
>       }
>
>     private void requestChildrenGrid(JSONValue jsonValue){
>
>      /*
>      * Here we fill the grid.
>      */
>
>
>     JSONObject jsonObject;
>     if(jsonValue.isArray() != null){
>      for(int i = 0; i < jsonValue.isArray().size();i++){
>      requestChildrenGrid(jsonValue.isArray().get(i));
>      childGrid.setWidget(itemNumber,0,new HTML("<HR/>"));
>         childGrid.setWidget(itemNumber,1,new HTML("<HR/>"));
>
>
>         itemNumber++;
>         int resizeNumber = itemNumber + 1;
>         childGrid.resize(resizeNumber,2);
>      }
>     } else {
>
>      if ((jsonObject = jsonValue.isObject()) != null) {
>
>         String[] keys = jsonObject.getKeys();
>         int valida = 0;
>
>         for (int i = 0; i < keys.length; ++i) {
>           String key = keys[i];
>           childGrid.setWidget(itemNumber,0,new HTML("<B>"+ key  +":</B>"));
> //Nombre Campo
>           childGrid.setWidget(itemNumber,1,new HTML("<a
> href="+jsonObject.get(key).toString()+">"+jsonObject.get(key).toString()+
> "</a>" )); //Valor Campo
>
>           requestChildrenGrid(jsonObject.get(key));
>
>           itemNumber++;
>           int resizeNumber = itemNumber + 1;
>           childGrid.resize(resizeNumber,2);
>           valida = 1;
>         }/*
>         if(valida != 0){
>          PSMenu mn = new PSMenu();
>          mn.presentarVentana();
>         }*/
>
>       } else if (jsonValue != null) {
>         // Only JSONObject, and JSONArray do anything special with
> toString, so
>         // it is safe to handle all non-null cases by simply using
> toString
>         //
>
>       } else {
>        //
>       }
>
>
>
>     }
>
>
>     }
>
> }
>
> }
>
> That works, but I can't manage the JSON result. I want take one to one the
> results of the PHP but I can't.
>
> I hope that your help me.
>
> Thank you again.
>
> Regards
>
> Andrés
>
>
> On Sat, Jun 6, 2009 at 8:35 AM, Ian Bambury <[email protected]> wrote:
>
>> Hi Andrés,
>>
>> You need to send a request from your GWT app to the PHP script via a
>> requestbuilder
>>
>>
>>        final RequestBuilder builder = new
>> RequestBuilder(RequestBuilder.POST, url);
>>        builder.setHeader("Content-Type",
>> "application/x-www-form-urlencoded");
>>        try
>>        {
>>            builder.sendRequest(parms, callback);
>>        }
>>        catch (final RequestException e)
>>        {
>>            submissionError(url, e);
>>        }
>>
>> In your PHP code, return the database results as JSON
>>
>>       die(urlencode(json_encode($data)));
>>
>> Back in the GWT app, in the callback routine, extract the data. There are
>> loads of checks you might like to do before this (check for a valid return
>> and not a PHP script error, for example).
>>
>>
>>         final String decodedText = URL.decodeComponent(responseText);
>>
>>         try
>>         {
>>             data = JSONParser.parse(decodedText).isObject();
>>         }
>>         catch (final Exception e)
>>         {
>>             // Error code here
>>         }
>>
>> And then check that you got back what you expected. In the data, you might
>> like to always return a status and check if the script completed
>> successfully. Mine include
>>
>> success - completed correctly, no message
>> message - completed correctly with a message for the user
>> warning - script did not complete as expected - message for the user (e.g.
>> search returned no results, login failed, etc)
>> error - script caught a *real*error - SQL error etc.
>>
>> but I have others
>>
>> Ian
>>
>> http://examples.roughian.com
>>
>>
>>
>> 2009/6/5 ANDRES BRUN <[email protected]>:
>>
>> > Hello Everybody
>> > I'm trying to implement a code that permit me integrate PHP, GWT, MYSQL,
>> I
>> > was testing and implementing different examples but I don't understand
>> > really good, which is the correct way to send data with JSON and
>> > principally. How I can receive that data in GWT? Please, I'm not newbie
>> in
>> > Programation but I'm really newbie in GWT, and this version 1.6 is
>> really
>> > difficult to learn. Somebody can help me with a good example "for
>> > dummies"... jajaja.
>> > Thank you
>> > --
>> > Andrés Brun
>> >
>> >
>> >
>> >
>>
>>
>
>
> --
> ANDRES BRUN
> ------------------------------------------------------------
> WebSite Andres Brun http://www.andresbrun.tk
> Blog - http://doyan2007.blogspot.com/
> WebSite http://www.prolinetsystems.tk
> GWT - http://groups.google.com/group/Google-Web-Toolkit?hl=en
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to