Confirmar Acciones

32 views
Skip to first unread message

wladiz....@gmail.com

unread,
Aug 28, 2017, 6:11:36 PM8/28/17
to ZnetDK
Muy buenas tardes


Estoy tratando de poner un diálogo de confirmación para el botón grabar en un dialogo de formulario, sin embargo cuando aparece el diálogo ya se graba el formulario y queda la confirmación esperando 

El código que uso es el del tutorial:

<div id="dlg_provider" class="zdk-modal" title="Proveedor">
     <form class="zdk-form" 
           data-zdkerrmsg-required="<?php echo LC_MSG_ERR_MISSING_VALUE; ?>"
           data-zdk-action="supplierctrl:save" data-zdk-datatable = "table_suppliers">
<label>Id:</label>
<input name = "id" disabled type = "text">
<label>Nombre:</label>
<input name="name" maxlength="50" required type="text">
<label> Dirección:</label>
<textarea name="address" rows = "3" maxlength= "100"> </textarea>
<label>Código Postal:</label>
<input name = "postcode" maxlength = "5" required type = "text">
<label>Ciudad:</label>
<input name = "city" maxlength = "50" required type = "text">
                 <button class="zdk-bt-save zdk-close-dialog" type="submit">Guardar</button>
                 <button class="zdk-bt-cancel zdk-close-dialog"  type="button">Cancelar</button>                 
     </form>
 </div> 
 
 <SCRIPT>
     
     
     $('#dlg_provider').submit(function(event){
            znetdk.getUserConfirmation({
            title:'Confirmar',
            message:'Esta Seguro?',
            yesLabel:'Yes',
            noLabel:'No',
            callback:function(confirmation){
                if (!confirmation) {
                    event.preventDefault();
                    return false;
                }
                return true;
    }
});

});        
 
 
Por favor me podrían ayudar en como lograr el efecto deseado, gracias

Pascal Martinez

unread,
Sep 1, 2017, 7:01:33 AM9/1/17
to ZnetDK
Hola,

Por eso, tienes que :
  • Suprimir le atributo data-zdk-action="supplierctrl:save" en la declaración de tu formulario, 
  • Y adaptar el código JavaScript de tu vista como ilustrado abajo.
<script>
$(document).ready(function(){
    
    $('#dlg_provider .zdk-form').on('zdkformcomplete', function(event, response){
        var myForm = $(this);
        // The controller and actions are reset...
        myForm.zdkform({controller:null, action:null});
        
        if (!$.isEmptyObject(response)) {
            // The event is triggered after response of the controller...
            // No confirmation is required.
            return ;  
        }
        
        znetdk.getUserConfirmation({
            title:'Confirmar',
            message:'Esta Seguro?',
            yesLabel:'Yes',
            noLabel:'No',
            callback:function(confirmation){
                if (confirmation) {
                    // The controller and action are set for the ZnetDK form
                    myForm.zdkform({controller:'supplierctrl', action:'save'});
                    // Now the remote controller is called... 
                    myForm.submit();
                }
            }
        });
    });
});

</script>

Saludos,

Pascal MARTINEZ




wladiz....@gmail.com

unread,
Sep 4, 2017, 11:02:37 AM9/4/17
to ZnetDK
Pascal buen día

Muchas gracias por tu respuesta

yo use esta solución, no se si tenga algun inconveniente (teórico o práctico)

<div id="dlg_provider" class="zdk-modal" title="Proveedor">
     <form class="zdk-form" id ="form_proveedor" name ="form_proveedor"
           data-zdkerrmsg-required="<?php echo LC_MSG_ERR_MISSING_VALUE; ?>"
           data-zdk-action="supplierctrl:save" data-zdk-datatable = "table_suppliers">
<label>Id:</label>
<input name = "id" disabled type = "text">
<label>Nombre:</label>
<input name="name" maxlength="50" required type="text">
<label> Dirección:</label>
<textarea name="address" rows = "3" maxlength= "100"> </textarea>
<label>Código Postal:</label>
<input name = "postcode" maxlength = "5" required type = "text">
<label>Ciudad:</label>
<input name = "city" maxlength = "50" required type = "text">
                 <button class="zdk-bt-save zdk-close-dialog" id ="btnsubmit" type="submit">Guardar</button>
                 <button class="zdk-bt-cancel zdk-close-dialog"  type="button">Cancelar</button>                 
     </form>
 </div> 
 
 <script>
    $('#btnsubmit').click(function(event){
            event.preventDefault();     
            znetdk.getUserConfirmation({
            title:'Confirmar',
            message:'Esta Seguro?',
            yesLabel:'Sí',
            noLabel:'No',
            callback:function(confirmation){
                if (confirmation) {
                    $('#btnsubmit').submit();
                    return true;
                }
                else
                {
                    return false;
                }
            }});
        
   });        
 </script>

Gracias

Pascal Martinez

unread,
Sep 7, 2017, 1:23:31 AM9/7/17
to ZnetDK
Hola,

Con tu solución, los datos del formulario no están validados por el navegador internet.

Por ejemplo, si no entra valor para el campo Nombre mientras que es obligatorio, el controlador PHP esta llamado con el parámetro POST name vació en la petición HTTP.

Saludos,

Pascal MARTINEZ

 
Reply all
Reply to author
Forward
0 new messages