Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question Delphi for Php (RAD PHP), valor de retorno de una QDataGrid!!

Estimados,

Una ayudita por favor, necesito saber como capturo el valor que retorna el evento OnClick o OnDBClick de una QDataGrid o DataGrid.

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 10-04-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Angry Sigo sin resolver!!

Estimados,

Lo unico que he encontrado para resolver es la siguiente sentencia:

Código PHP:
$nomovim $this->QDBGrid1->DataSource->DataSet->Fields["campo_a_seleccionar"]; 
Ahora, hice una rutina JavaScripts qe me da el valor de la celda que selcciono, pero siempre del primer row.

Necesito saber como capturo el valor que retorna el evento OnClick o OnDBClick de una QDataGrid o DataGrid.

Muchas gracias.[/quote]
Responder Con Cita
  #3  
Antiguo 10-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Vaya, a ver si alguien puede ayudarte.
Responder Con Cita
  #4  
Antiguo 11-04-2012
taqtaq taqtaq is offline
Miembro
 
Registrado: jun 2006
Posts: 22
Poder: 0
taqtaq Va por buen camino
No sé si es lo que estás necesitando, pero por las dudas, fijate en el siguiente código, tal vez te sirva:

Código PHP:
    function dbgrid1JSClick($sender, $params)
    {
        ?>
        //begin js

              var row = dbgrid1.getFocusedRow();
              var col = dbgrid1.getFocusedColumn();
              var value=dbgrid1.getTableModel().getValue(col,row);
              alert('col = '+col+' row = '+row+' cell = '+value);

        //end
        <?php
    
}
Si todo anda bien, te tiene que mostrar un alert con el nº de renglón, el nº de la columna y el valor de la celda al hacer click en el QDBgrid.

Saludos
Responder Con Cita
  #5  
Antiguo 13-04-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Angry Colegas, sigo sin resolver, una ayuda por favor.

taqtaq,

Tienes toda la razón, ese algoritmo me da el valor del contenido de la fila/columna seleccionada, pero el problema es que el algoritmo esta escrito para JavaScritp y no existe forma directa alguna de pasar este valor a una variable php.

He probado con cookies js rescatando en php, acomode un algoritmo ajax, pero nada.

Estoy explorando las opciones del dataset para ver si algo funciona, pero ya a 1 semana y media no logro resolver.

Gracias y espero sus comentarios.
Responder Con Cita
  #6  
Antiguo 16-04-2012
taqtaq taqtaq is offline
Miembro
 
Registrado: jun 2006
Posts: 22
Poder: 0
taqtaq Va por buen camino
Hola Juampy

Creo que podrás encontrar una mejor respuesta de alguien que sepa PHP y no sea un principiante como yo,
pero aun así, te voy a comentar algunas cosas que estuve probando, que me dieron resultados y que, tal vez, te puedan servir también.

Por lo que decis, estás necesitando obtener un valor de una QDBGrid y a partir de ese valor, realizar una operación que arroje algún resultado.

Como no aclaras lo que pretendes hacer con ese valor, decidí tomar un valor de un QDBgrid para actualizar otro QDBgrid.
Creo que en base a lo que hice, tal vez, podrías adaptarlo a lo que tu necesitas.

Yo trabajo con Firebird y utilicé los componentes para firebird, si trabajas con MySQL, obviamente, tendrás que utilizar las conexiones y componentes para MySQL.

Entonces, puse:

* una conexión a la BD
* dos datasource
* dos query
* dos QDBgrid
* 1 HiddenField
* 1 Label

Enlacé a la primera dbgrid, el datasource1 con una consulta a una tabla.
A la segunda dbgrid lo enlacé al datasource2 enlazado a un query con consulta a lo que se podría llamar como el detalle de la primer dgbrid.

En el evento onclick de javascript de la primer qdbgrid, puse el siguiente código:


Código PHP:
function DBGrid1JSClick($sender, $params)
    {
        ?>
        //begin js
              var row = DBGrid1.getFocusedRow();
              var col = DBGrid1.getFocusedColumn();
//              var value=DBGrid1.getTableModel().getValue(col,row);
              var value=DBGrid1.getTableModel().getValueById('ID_PERSONA',row);
              findObj('HideField').value = value;
              findObj('Label1').innerHTML = value;
        //end
        <?php
//         echo $this->DBGrid1->ajaxCall("ActualizarGrilla",array($sender,$param),array("DBGrid2"));
         
echo $this->DBGrid1->ajaxCall("ActualizarGrilla",array(),array("DBGrid2"));
    }
¿Qué hago con esto?
El objetivo es obtener la clave primaria de la tabla que me permita obtener un detalle en la segunda Dbgrid.
Es por eso que utilizo

var value=DBGrid1.getTableModel().getValueById('ID_PERSONA',row);

(Si quieres más información acerca de las DBGRIDS, fijate en este link:
//demo.qooxdoo.org/current/apiviewer/#qx.ui.table.ITableModel )

Siguiendo lo que tu necesitas, paso ese valor a un Hidenfield que puse para tal fin. (En las demos de RADPHP hay un ejemplo del uso de los hidenfields.)

findObj('HideField').value = value;

findObj es una función que permite acceder a un objeto de php con javascript
( docwiki.embarcadero.com/RadPHP/en/RPCL_and_JavaScript )

y findObj('Label1').innerHTML = value; la uso solamente para mostrar el valor de mi clave.

Para poder actualizar la segunda DBGrid, escribí la siguiente función:

Código PHP:
  function ActualizarGrilla()
    {
      
$sql "SELECT * FROM PERSONAS WHERE ID_PERSONA = ".$this->HideField->Value;
      
$this->Query2->close();
      
$this->Query2->SQL=$sql;

      
$this->Query2->Prepare();
      
$this->Query2->close();
      
$this->Query2->open();
    } 
Esa es la función en php que me "filtra" los datos en la segunda DBGrid a partir de la clave obtenida al hacer click en la primer DBGRID
A esa función le hago una llamada ajax con "ajaxCall" y me actualiza la segunda DBGrid.

También estuve probando que si a la función "ActualizarGrilla" le hubiera declarado parametros, para llamarla tendría que usar lo siguiente:

echo $this->DBGrid1->ajaxCall("ActualizarGrilla",array($sender,$param),array("DBGrid2"));


Resumiendo:

¿Como pasé el valor de javascript a php?
Con un hidennfield utilizando findObj("").value=

¿Cuándo obtuve el valor de mi clave primaria?
En el evento onclick de javascript de la DBGRID.

¿Cuándo filtré los datos de la segunda DBGRID?
En el mismo evento onclick de la DBGRID al llamar con ajaxCall a una función que definí previamente para actualizar el DBGRID2. Lo hubiera podido hacer en otra parte.

Bueno, espero te sirva. Insisto, soy un principiante en PHP y en RADPHP así que es posible que alguien sugiera una mejor manera de la que yo te expongo y sería bueno que eso ocurra así aprendemos.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas Retorno de Valor SP MSSQL subzero PHP 1 08-04-2009 23:56:17
El retorno... jcerro Varios 7 01-01-2007 13:44:07
Distinto valor de retorno en storedprocedure desde delfi y desde consola sql manolop Firebird e Interbase 4 20-07-2005 17:24:52
retorno de carro empty Varios 3 14-05-2004 10:21:39
Cálculo de valor presente y tasa de retorno (NPV, IRR) power_vegeta Varios 1 11-07-2003 08:16:57


La franja horaria es GMT +2. Ahora son las 17:21:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi