Foro

pasar variable a atributo

0
Buenas, tengfo el siguiente problema a ver si alguein me echa una manito: quiero pasar una variable de sesion a un campo title de un elemento. Pense que podira hacerlo asi :
var nombreUsuario = '<?php echo $_SESSION["nombreusuario"]; ?>';
title: nombreUsuario,
pero no me funciona <!-- s:roll: --><!-- s:roll: --> cualquier luz será agradecida
0
mira... si haces eso dentro de un archivo PHP si te debe funcionar, solo recuerda que te asignará el contenido justo cuando se esta generando el HTML en el explorador, es decir cuando se carga la página al inicio.
<html>
 <head>
 <script type="text/javascript">
   Ext.onReady(function(){
      var nombreUsuario = '<?php echo $_SESSION["nombreusuario"]; ?>';
     var win = new Ext.Window({
        title: 'User: '+nombreUsuario,
        width: 300,
        height: 250
     });
     win.show();
  });
 </script>
 </head>
 <body>
 </body>
</html>
Si lo que deseas es asignar ese valor en algún otro momento y fuera de un PHP necesitarías utilizar AJAX para recolectar el contenido.
Ext.Ajax.request({
   url: 'getUserSession.php',
   success: function(response){
      var info = Ext.decode(response.responseText);
      
      var win = new Ext.Window({
        title: 'User: '+info.nombreUsuario,
        width: 300,
        height: 250
     });
     win.show();
   }
});
donde tu respuesta debe ser en JSON con el siguiente formato:
{
   nombreUsuario: '<?php echo $_SESSION["nombreusuario"]; ?>'
}
saludos
0
O lo que puedes hacer es reemplazar la extensión del javascript por .php, y luego incluirlo dentro del html. Lógico, como si fuése el javascript ( <script ... /> ). Si es que no te funciona, agreguela la siguiente cabecera:
<?php header("Content-type: application/x-javascript"); ?>
Y con eso ya te debiése funcionar tu código PHP bien. Adiós.
0
agradezco mucho sus respuestas, pero obviamente no aporté la información correcta para que pudieran ayudarme, estoy realizando un proyecto basado en el ejemplo de Web Desktop de la pagina de EXTJS, me autentifico por medio de un login, y almaceno el nombre del usuario en una variable de session, ahora bien, en el archivo .js que configura la aplicacion quiero colocar el nombre del usuario logeado, pero no puedo asignarle al valor title del elemento la variable recuperada. les agrego el codigo para que me echen una manito, de antemano muchisimas gracias:
// Sample desktop configuration
MyDesktop = new Ext.app.App({
	init :function(){
		Ext.QuickTips.init();
	},
	getModules : function(){
		return [
			new MyDesktop.nuevaObra(),
			new MyDesktop.GridWindow(),
            new MyDesktop.TabWindow(),
            new MyDesktop.AccordionWindow(),
            new MyDesktop.BogusMenuModule(),
            new MyDesktop.BogusModule()
		];
	},
    // config for the start menu
    getStartConfig : function(){
		var nombreUsuario = '<?php echo $_SESSION["nombreusuario"]; ?>';
        return {
			
            title: nombreUsuario,
            iconCls: 'user',
            toolItems: [{
                text:'Panel',
                iconCls:'settings',
                scope:this
            },'-',{
                text:'Salir',
                iconCls:'logout',
                scope:this
            }]
        };
    }
});
he estado revisando documentacion y tengo entendido que debo hacerlo con Ext.Ajax.Request pero no sé como usarlo. he creado una pagina php para la respuesta asi:
<?
session_start();
echo $_SESSION["nombreusuario"];
?>
pero no se como usar el ajax para capturar el dato del php. <!-- s:oops: --><!-- s:oops: -->
0
mira mi post anterior, ya te explique eso presizamente <!-- s;) --><!-- s;) -->
0
tienes toda la razon, ahora que he aprendido un cachito más tu codigo se me ha hecho claro y me ha servido , gracias
0
Hola muchachos, aprovecho este hilo para hacerles una consulta.. como hago para por fuera de una coneccion tipo ajax como la que dice stock:
Ext.Ajax.request({
   url: 'getUserSession.php',
   success: function(response){
      var info = Ext.decode(response.responseText);
     var usaurio=info.nombreUsuario;
      var win = new Ext.Window({
        title: 'User: '+info.nombreUsuario,
        width: 300,
        height: 250
     });
     win.show();
   }
});
poder tener el valor de la variable "usuario" en cualquier parte de mi código... que este por fuera de ese .Ajax.request... no se si me hice entender.. espero que si..
0
si estas empaquetando tu código puedes agregarle el atributo usuario al objeto contenedor, solo recuerda cambiar el scope de la función success, algo así:
var Ejemplo = function(options){
//........ código por aquí y por allá XD
//en algún momento...
Ext.Ajax.request({
   url: 'getUserSession.php',
   scope: this,  //recuerda cambiar el scope!!! importantisimo!!
   success: function(response){
      var info = Ext.decode(response.responseText);
      var usaurio=info.nombreUsuario;
      var win = new Ext.Window({
        title: 'User: '+info.nombreUsuario,
        width: 300,
        height: 250
     });
    //le asignas el usuario al objeto principal ("Ejemplo" en este caso)
    this.usuario = usuario; //aquí la tendrías disponible dentro del contexto de el objeto "Ejemplo"
     win.show();
   }
});
}
saludos

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.