Foros del Web » Programando para Internet » Javascript » Frameworks JS »

extjs, ayuda con xml retornado por php

Estas en el tema de extjs, ayuda con xml retornado por php en el foro de Frameworks JS en Foros del Web. buenas, estoy haciendo un login mediante extjs y php, yo desde la función submit de mi js le mando al php el usuario y la ...
  #1 (permalink)  
Antiguo 14/05/2009, 01:22
 
Fecha de Ingreso: abril-2009
Ubicación: En dust 2
Mensajes: 149
Antigüedad: 15 años
Puntos: 2
extjs, ayuda con xml retornado por php

buenas, estoy haciendo un login mediante extjs y php, yo desde la función submit de mi js
le mando al php el usuario y la password, seguidamente en el php compruebo si existe y retorno una cadena con el texto xml si es error o si es ok, lo que quiero es coger el nodo resultado para saber si es ok o es error y asi porder mostrar el mensaje de error o redireccionar a la pagina de inicio del programa. Gracias

Aqui muestro el login.js y el login.php:

LOGIN.JS

Ext.onReady(function(){
Ext.QuickTips.init();

var res = Ext.data.Record.create([
{name: 'resultado', mapping: 'resultado'}
]);

var reader = Ext.data.XmlReader({
totalRecords: "total",
record: "respuesta",
id: "id"
}, res);

/*var proxy = new Ext.data.HttpProxy({
method:'GET',
url: 'php/login.php'
});

this.store = new Ext.data.Store({
proxy: proxy,
reader: reader
});*/

var log = new Ext.FormPanel({
id: 'login',
renderTo: Ext.getBody(),
labelWidth: 75,
width: 350,
buttonAlign: 'right',
border: false,
bodyStyle: 'padding:10px 10px 0;',
defaults: {
anchor: '95%',
allowBlank: false,
selectOnFocus: true,
msgTarget: 'side'
},
defaultType: 'textfield',
items: [{
fieldLabel: 'Usuario',
name: 'usu',
blankText: "El campo usuario es requerido"
},{
inputType: 'password',
fieldLabel: 'Password',
name: 'pass',
blankText: "El campo password es requerido"
}],
buttons:
[{
text: 'Entrar',
handler: function(){
if(log.getForm().isValid()){
var sb = Ext.getCmp('form-statusbar');
sb.showBusy('Comprobando Datos...');
log.getEl().mask();
log.getForm().submit({
method:'GET',
url:'php/login.php',
success: function(){
//MI DUDA ESTA AQUI, COMO RECOGERLO
//Y BUSCAR EL NODO RESULTADO CON IF

},
failure:function(form, action){
log.getForm().reset();
sb.showBusy('Insertar Datos');
sb.setStatus({
iconCls:'',
clear: true
});
log.getEl().unmask();
Ext.MessageBox.show({
title:'Error',
msg:'No se ha podido conectar al
servidor, inténtelo de nuevo',
buttons: Ext.MessageBox.OK,
icon: 'imagen_error'
});
}
})
}
}
},{
text:'Limpiar',
handler: function(){
log.getForm().reset();
}
}]
});

log.render('lg');

new Ext.Panel({
title: 'Iniciar Sesión',
renderTo: Ext.getBody(),
width: 350,
autoHeight: true,
layout: 'fit',
items: log,
bbar: new Ext.StatusBar({
id: 'form-statusbar',
defaultText: 'Insertar Datos',
plugins: new Ext.ux.ValidationStatus({form:'login'})
})
});
});




LOGIN.PHP


<?php
include ("conexion.php");
include ("logbilling.php");

$cnx = conectar();

$salida_xml = "<?xml version=\"1.0\" encoding = \"ISO-8859-1\"?>\n";
$usu = $_GET['usu'];
$pass = $_GET['pass'];

$sql = "SELECT i_id_cliente FROM cliente WHERE V_USUARIO_CLI = '".mysql_real_escape_string($usu)."' AND V_PASSWORD_CLI = '".mysql_real_escape_string(md5($pass))."';";
$res = mysql_query ($sql);

LogToFile("USU: ". $usu . " PASS: ". $pass . "Numero Res: " . mysql_num_rows($res));

if(mysql_num_rows($res) > 0)
{
$salida_xml .= "<respuesta>\n";
$salida_xml .= "<total>1</total>\n";
$salida_xml .= "<id>1</id>\n";
$salida_xml .= "<res>\n";
$salida_xml .= "\t<resultado>Ok</resultado>\n";
$salida_xml .= "</res>\n";
$salida_xml .= "</respuesta>";

mysql_close($cnx);
return $salida_xml;
}
else
{
$salida_xml .= "<respuesta>\n";
$salida_xml .= "<total>1</total>\n";
$salida_xml .= "<id>2</id>\n";
$salida_xml .= "<res>\n";
$salida_xml .= "\t<resultado>Error</resultado>\n";
$salida_xml .= "</res>\n";
$salida_xml .= "</respuesta>";

mysql_close($cnx);
return $salida_xml;
}
?>
  #2 (permalink)  
Antiguo 22/06/2009, 21:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 24
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: extjs, ayuda con xml retornado por php

mira, lo que te retorna el php deberia ser un json, mira el api de extjs, en la estructura que se define para el json hay un atributo que indica el numero de registros recuperados de la base de datos, entonces, tienes que mirar el api para saber como usar el atributo y pues si vale cero despues de la consulta entonces redireccionas sino quiere decir que usuario si esta resgritrado y lo dejas ingresar.

Ahora eso de nodo no lo entiendo, creo que es un termino que no cabe en este tema, no se si te refieres mas bien a la tupla recuperada de la base de datos. De todas maneras la verificacion se hace si el json vinene con algo despues de la consulta a la base de datos, sino es asi entonces ya puedes usar lo que te dije anteriormente para decidir, y no habria que hacer mas verificaciones de ningun tipo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:05.