Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2009, 01:22
erevaristo
 
Fecha de Ingreso: abril-2009
Ubicación: En dust 2
Mensajes: 149
Antigüedad: 15 años, 7 meses
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;
}
?>