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