He buscado, revisado y vuelto a buscar, pero no consigo, ni se cómo configurar el "callback" que necesito...
Gracias por la ayuda que me puedan dar para seguir con mi aprendizaje...
... Al dar click en el botón que he dispuesto en el gridPanel
me.on('ButtonClicked', function (grid) {
var sm = grid.getSelectionModel();
var selected = sm.getSelection();
var numRecords = sm.getCount(); //Devuelve el número de filas seleccionadas (todas son enlaces a tabulados en forma
to html)
Ext.each(selected, function(item) {
var url = item.get('Archivo');
rows.push(url); // agrega enlaces a la matriz
}, this);
... Llamada al archivo php y paso de parámetros
Ext.Ajax.request({
url: 'recibeS.php', // mi url
method: 'POST',
params: {
"group[]": rows, // incluye la matriz en los parámetros
},
success: function(response, opts) {
console.log("ok");
var win =Ext.getCmp('SE QUE AQUI DEBO HACER REFERENCIA A UN COMPONENTE... PERO NO SE A CUÁL');
win.myWindow.show();
},
failure: function() {
console.log('error');
}
});
Los componentes que tengo en mi aplicación
son:
a)
Ext.define('UrlGrid', { extend: 'Ext.grid.Panel',
itemId: 'urlgrid',
alias: 'widget.UrlGrid',
layout:'fit',
b) un data model (Ext.define('MyGrid', ...)
c) un Store (var store = Ext.create('Ext.data.JsonStore',...)
d) Una instancia de mi aplicación
Ext.application({
name: 'Fiddle',
e) Un panel
Ext.create('Ext.panel.Panel', { renderTo: Ext.getBody(),
width: 500,
heigth: 500,
title: 'Url Demo',
items: [{
xtype: 'UrlGrid'
}]
});
getCMP no es muy recomendable usarlo por los problemas que pueda ocasionar más adelante si llegaras a duplicar un ID, pero intentalo y nos cuentas.
Saludos
Después de un par de semanas un poco complicadas, recién, ésta que termina, pude retomar lo que venía haciendo y a pesar que le he puesto mucho empeño resulta evidente que no he podido dar con la manera de resolver el tema de conseguir que el bendito "recibeS.php" se despliegue en la pantalla del browser, no voy a poner todos los intentos que he hecho ni la referencia a cuanto post relacionado con esto he leído y probado, pero nada. En resumen:
1.- Envío bien la petición y parámetros al archivo php
2.- El servidor devuelve el archivo "recibeS.php" en formato html con cada uno de los tabulados que haya seleccionado desde el gridPanel
3.- La cónsola del debugger que utilice no muestra ningún error
4.- El browser no muestra nada
5.- El archivo "recibeS.php" devuelto desde el servidor sólo lo puedo ver activando/accediendo por "More tools/Developer tools/Network/recibeS.php (devuelto por el server)/Preview" en caso que use Chrome
6.- Entre lo que he hecho, he creado una ventana (Ext.Window) a la que he asociado el "RecibeS.php", pero lo que me muestra es el archivo que "levanta" desde su ubicación de carpeta y NO el devuelto por el servidor... entonces nunca ha funcionado la visualización correcta.
7.- Mi proyecto final no es más (la verdad ha resultado mucho) que implementar con ExtJs lo que ya hice antes con la idea de mejorarlo (http://celade.cepal.org/piaalc_esp/MIGR_Int/SelectS.php) si te animas a darle una mirada hazlo con FireFox
8.- La verdad es que estoy bien, pero bien entrampado con esto y lo único que quiero es seguir adelante.
Agrego un enlace para los archivos que estoy utilizando y "piaalc.html" es el archivo de "arranque de la aplicación" https://www.dropbox.com/s/sbznleq0bzj1k7g/Final.rar?dl=0
Gracias por la ayuda que puedas dar.
Saludos.
var win = Ext.getCmp('miventana-id');
Obviamente tu ventana debe tener declarada la propiedad "id" con el mismo nombre que vas a usar en el Ext.getCmp() y luego necesitas usar lo que devuelves de recibeS.php que estará contenido dentro de la variable "response" (puedes usar console.log(response); para ver como lo estas devolviendo y luego:
win.update(response.loqueseaquedevuelvo);
es lo que se me ocurre, suerte ;)
//Code here
var win = Ext.create("Ext.window.Window",{
title :"Test Tabulados",
itemId: "VentanaTabs",
style : "text-align:center",
autoScroll:true,
width : 600,
height: 450 ,
html: response.responseText, //el contenido del panel
item: main
});
var main = new Ext.Panel({
title: 'Resultados',
itemID: "PanelOut",
height: 500,
render: win, //el elemento donde será insertado
});
win.show();
Ahora le voy a dedicar tiempo a llevar esto, que ya funciona, al ejemplo que se usa en el tutorial "Las pestaas o Tabs" del curso de EXTJs 3... ya veré cómo me va, pero lo seguro es que volveré a aparecer pidiendo ayuda.
Gracias por la atención prestada.
¿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.