Foros del Web » Programando para Internet » PHP » Zend »

Zend Form bloquea Javascript

Estas en el tema de Zend Form bloquea Javascript en el foro de Zend en Foros del Web. Hola foreros: tengo un problema con zend form, dado que tengo un form hecho con zend form de búsqueda que lo llamo en la vista ...
  #1 (permalink)  
Antiguo 15/02/2012, 07:48
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Pregunta Zend Form bloquea Javascript

Hola foreros:

tengo un problema con zend form, dado que tengo un form hecho con zend form de búsqueda que lo llamo en la vista de mi lista de registros, a esta lista de registros le quiero poner un checkbox para poder elegir entre múltiples o todos de la lista para eliminar, el problema radica ahí que el form de búsqueda me bloquea el código javascript para poder seleccionar de una sola vez todos lo registros, cuando saco el form de búsqueda funciona correctamente el JS. Alguna idea para poder resolver este inconveniente.

Muchas gracias por la ayuda.

Daniel
  #2 (permalink)  
Antiguo 15/02/2012, 10:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Form bloquea Javascript

Es complicado que haya una solución así sencilla ya que no expones el código ni como lo rendereas, al final de hecho no deberías de tener ningún problema ya que PHP se ejecuta en el servidor, y JS en el cliente, por lo que solamente imprimiendo el markup correcto de tu forma con Zend, integrarle JS no debería de ser problema.

Saludos.
  #3 (permalink)  
Antiguo 15/02/2012, 11:08
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: Zend Form bloquea Javascript

gracias GatorV, enseguida pongo el codigo:

En la vista tengo esto:

Código PHP:

<script> 
function ChequearTodos(chkbox) 

    for (var i=0;i < document.forms["formCheck"].elements.length;i++) 
    { 
        var elemento = document.forms[0].elements[i]; 

        if (elemento.type == "checkbox") 
        { 
            elemento.checked = chkbox.checked 
        } 
    } 

</script> 

<div class="container">
        
     <?php echo $this->form?>
    
</div>

<div class="container">
    <form name="formCheck" action="" method="post">   
        <table id="tablaGastos">
            <tr>
                <td class="adelantosGT"><input onClick="ChequearTodos(this);" name="checkbox" type="checkbox" value="checkbox" /></td>
                <td class="adelantosGT">Nº OS</td>
                <td class="adelantosGT">Cliente</td>
                <td class="adelantosGT">Mercancía</td>
                <td class="adelantosGT">Nave</td>
                <td class="adelantosGT">Usuario</td>               
                <td class="adelantosGT">Observaciones</td>
                <td class="adelantosGT">Editar</td>
                <td class="adelantosGT">Eliminar</td>
            </tr>
             <?php if(count($this->amane)){?>
            <?php foreach ($this->amane as $amanecida): ?>
            <tr> 
                <td><input type="checkbox" name="checkbox"  value="<?php echo $amanecida->amanecidas_id?>"></td>
                 <td><?php  echo $amanecida->numero?></td>
                <td><a href="" title="<?php  echo $amanecida->name?>"><?php  echo $amanecida->cname?></a></td>
                <td><?php  echo $amanecida->mercancia?></td>
                <td><?php  echo $amanecida->nave?></td>                
                <td><?php  echo $amanecida->amanecidas_usuario?></td>                
                <td><?php echo $amanecida->amanecidas_detalle ?></td>
                <td><a href="<?php echo $this->url(array('action'=>'ameditar','id'=>$amanecida->amanecidas_id)) ?>"><img src="<?php echo $this->baseUrl().'/images/edit-icon.gif'?> "border="0" title="Editar"/></a></td>
                <td><a href="<?php echo $this->url(array('action'=>'amborrar','id'=>$amanecida->amanecidas_id)) ?>"><img src="<?php echo $this->baseUrl().'/images/delete-icon.gif'?> "border="0" title="Borrar"/></a></td>
                
            </tr>
                      
    <?php endforeach;?>
            
             <?php }else{?>
            <tr>
                <td colspan="10"><?php echo 'No se encontraron resultados para esta búsqueda' ?></td>
            </tr>
            <?php ?>
        </table>
    
   </form> 
    
</div>
el $this->form viene del controlador donde es llamado un formulario de búsqueda echo con Zend form.

cuando saco esto:
Código PHP:
<div class="container">
        
     <?php echo $this->form?>
    
</div>
funciona correctamente. Gracias.
  #4 (permalink)  
Antiguo 15/02/2012, 11:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Form bloquea Javascript

Verifica el HTML generado, no veas el archivo .phtml, si no el archivo html que es generado y verifica que sea el html correcto para tu función javascript.

Saludos.
  #5 (permalink)  
Antiguo 15/02/2012, 12:20
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Exclamación Respuesta: Zend Form bloquea Javascript

GatorV, he revisado "n" veces el HTML generado como me comentas y todo parece estar bien. Alguna otra sugerencia. Gracias.

Saludos,
  #6 (permalink)  
Antiguo 15/02/2012, 13:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Zend Form bloquea Javascript

Pues lo único que puedo pensar es que el form tenga como name, también formCheck...
  #7 (permalink)  
Antiguo 15/02/2012, 14:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Zend Form bloquea Javascript

Es raro que te refieras al mismo form de manera diferente (una por nombre y otra por índice):
Código PHP:
for (var i=0;document.forms["formCheck"].elements.length;i++)  
    {  
        var 
elemento document.forms[0].elements[i]; 
Si en la página hay más de un formulario puede redundar en error aunque el nombre del form sea correcto (porque cómo estar seguros de que forms[0] y forms["formCheck"] son el mismo form). Lo más sano sería agregarle un id al form y referenciar con document.getElementById('elId').
  #8 (permalink)  
Antiguo 15/02/2012, 16:15
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 94
Antigüedad: 14 años
Puntos: 2
Respuesta: Zend Form bloquea Javascript

Gracias Panino5001, efectivamnete con tu recomendación funciona correctamente, le puse un id al form y luego el JS queda asi:

Código PHP:
for (var i=0;document.forms["formCheck"].elements.length;i++)   
    {   
        var 
elemento document.getElementById('formCheck').elements[i]; 
donde formCheck es el ID del FORM.

Muchas gracias.

Saludos

Etiquetas: javascript, registro, bloquear, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:28.