New beta version 0.98

33 views
Skip to first unread message

Pascal Martinez

unread,
Jul 21, 2015, 3:30:13 AM7/21/15
to zne...@googlegroups.com
Hello,

The new beta version 0.98 of ZnetDK is now available for download at http://www.znetdk.fr/telechargements.

This version includes several bug fixes concerning in particular Internet Explorer 11.
Also, the dropdown widget is now fully integrated to the ZnetDK form (see online demo at http://www.demo.znetdk.fr).

Read the CHANGELOG.TXT file for more details about this version.

Your feedback is welcome...

Pascal Martinez

Jose Puertas

unread,
Jul 21, 2015, 10:21:09 AM7/21/15
to zne...@googlegroups.com
Hola Pascal, he probado el tema del dropdown y no me sale correcto este es el  codigo en la vista:

<select class="zdk-dropdown" name="id_entrenador" 
                data-zdk-action="tecnicosctrl:lister"
                data-zdk-noselection="Seleccionar un valor..."></select>

Y este en el controlador:

static protected function action_lister() {
        $tecnicoDAO = new tecnicoDAO();
        $tecnico = array();
        while ($row = $tecnicoDAO->getResult()) {
            $tecnico[] = $row;
        }
        /* Réponse retournée au contrôleur principal */
        $response = new \Response();
        $response->rows = $tecnico;
        $response->success = true;
        return $response;
    }

el resultado es:

[object Object

la tabla si que contiene datos.

Saludos]

Pascal Martinez

unread,
Jul 21, 2015, 5:05:10 PM7/21/15
to ZnetDK
Hola José,

Tu variable $tecnico tiene que ser de tipo array a dos dimensiones con un indice 'value' y otro indice 'label'.

En tu controlador, en amarillo lo que tienes que cambiar:

 static protected function action_lister() {
        $tecnicoDAO
= new tecnicoDAO();
        $tecnico
= array();
       
while ($row = $tecnicoDAO->getResult()) {

           
/*$tecnico[] = $row;*/
            $tecnico[] = array('label' => $row['mi_label'], 'value' => $row['mi_id']);

        }
       
/* Réponse retournée au contrôleur principal */
        $response
= new \Response();
        $response
->rows = $tecnico;
        $response
->success = true;
       
return $response;
   
}

'mi_label' es la columna de tu tabla que contiene el texto que quieres mostrar en el dropdown.
'mi_id' es la columna de tu tabla que identifica el registro.

Diga me si funciona ahora.

Saludos,

Pascal MARTINEZ

Jose Puertas

unread,
Jul 22, 2015, 1:50:35 AM7/22/15
to ZnetDK
Perfecto Pascal si que me agrega los datos, pero a la hora de guardar quisiera que en la tabla me muestre el nombre, aunque se guarde el id, tal y como hace tu formulario de usuarios con los profiles ¿cómo lo puedo hacer?

Saludos

Pascal Martinez

unread,
Jul 22, 2015, 5:03:33 AM7/22/15
to ZnetDK
Hola José,

Si entiendo bien, quieres que el nombre seleccionado en tu dropdown sea mostrado en el datatable de tu vista.
Si comparo con la funcionalidad de gestión de los usuarios, es casi igual que la selección de uno o varios perfiles para un usuario con el listbox (el listbox es multi selección mientras que el dropdown es mono selección).

El DAO que consultas en el controlador encargado de alimentar tu datatable, tiene que devolver el nombre seleccionado en tu dropdown.
Por eso, en tu consulta SQL, tienes que establecer una relación entre la tabla principal y la tabla que contiene los nombres mostrados en tu dropdown (relacion SQL 'inner join' o 'left join' según que la selección en tu dropdown sea obligatoria o no).

Otra solución, utilizar dos DAO: el primero para obtener los datos principales, el segundo para obtener el nombre de la valor seleccionada en tu dropdown por tu registro.
En tu bucle, busqué en tu segundo DAO el nombre que corresponde a tu identificador grabado en tu registro principal.

Hasta luego,

Pascal MARTINEZ

Jose Puertas

unread,
Jul 22, 2015, 4:42:06 PM7/22/15
to ZnetDK
Muchas gracias Pascal, solucionado.

Saludos
Reply all
Reply to author
Forward
0 new messages