Foros del Web » Programando para Internet » Jquery »

Jquery: Problema en el BeforeSend para comprobar datos

Estas en el tema de Jquery: Problema en el BeforeSend para comprobar datos en el foro de Jquery en Foros del Web. Hola, tengo el siguiente código para agregar un operario sin recargar la pagina! @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < div id = "operaris_empresa" style ...
  #1 (permalink)  
Antiguo 12/01/2010, 10:54
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Jquery: Problema en el BeforeSend para comprobar datos

Hola, tengo el siguiente código para agregar un operario sin recargar la pagina!

Código HTML:
Ver original
  1. <div id="operaris_empresa" style="display:none;">
  2.         <form id="frmOperaris" name="frmOperaris" method="post" action="javascript: AltaEmpresaOperari();">
  3.         <input type="hidden" id="id_empresa" name="id_empresa" value="<?php echo $_GET['id'];?>"/>
  4.         <table class="taula_resultats">
  5.         <tr>
  6.             <th class="th_resultats">Nombre</th>
  7.             <th class="th_resultats">Apellido</th>
  8.             <th class="th_resultats">Precio Preventivo</th>
  9.             <th class="th_resultats">Precio Averia</th>
  10.             <th rowspan="2"><input type="image" src="../lib/img/generics/ok.png" id="submit" name="submit" value="Guardar"></th>               
  11.         </tr>
  12.         <tr>
  13.             <td class="td_resultats" align="left"><input type="text" id="newnom" name="newnom" value=""/></td>
  14.             <td class="td_resultats" align="left"><input type="text" id="newcognom" name="newcognom" value=""/></td>
  15.             <td class="td_resultats" align="left"><input type="text" id="newpreu_ac" name="newpreu_ac" value=""/></td>         
  16.             <td class="td_resultats" align="left"><input type="text" id="newpreu_av" name="newpreu_av" value=""/></td>
  17.         </tr>
  18.         </table>
  19.         </form>
  20.         <div id="list_operaris" class="list_operaris">     
  21.         <table id="empresa_operaris" class="taula_resultats">  
  22.         <thead>
  23.         <tr>
  24.             <th class="th_resultats">Nombre</th>
  25.             <th class="th_resultats">Apellido</th>
  26.             <th class="th_resultats">Precio Preventivo</th>
  27.             <th class="th_resultats">Precio Averia</th>
  28.             <th>&nbsp;</th>
  29.         </tr>
  30.         </thead>
  31.         <tbody>
  32.         <?php
  33.         if($sql_operaris) {
  34.             while( $operaris = mysql_fetch_array($sql_operaris) ){     
  35.             ?> 
  36.                 <tr id="fila-<?php echo $operaris['id_operari'] ?>">
  37.                     <td class="td_resultats" align="left" width="25%"><input type="text" id="nom" name="nom" value="<?php echo utf8_decode($operaris['nom']); ?>"/></td>
  38.                     <td class="td_resultats" align="left"><input type="text" id="cognom" name="cognom" value="<?php echo utf8_decode($operaris['cognom']); ?>"/></td>
  39.                     <td class="td_resultats" align="left"><input type="text" id="preu_ac" name="preu_ac" value="<?php echo $operaris['preu_ac']; ?>"/></td>        
  40.                     <td class="td_resultats" align="left"><input type="text" id="preu_av" name="preu_av" value="<?php echo $operaris['preu_av']; ?>"/></td>                  
  41.                     <?
  42.                         if($operaris['situacio'] == 0){?>
  43.                        
  44.                             <td class="td_resultats" align="center" width="5%" title="Dar de Baja"><img src="http://www.forosdelweb.com/f127/lib/img/generics/up.png" onClick="AltaBaixaOperari('b',<?php echo $operaris['id_operari'] ?>); return false"></td>
  45.                        
  46.                         <?php   }else{  ?>
  47.                        
  48.                             <td class="td_resultats" align="center" width="5%" title="Dar de Alta"><img src="http://www.forosdelweb.com/f127/lib/img/generics/down.png" onClick="AltaBaixaOperari('a',<?php echo $operaris['id_operari'] ?>); return false"></td>
  49.                        
  50.                         <?php   }//if($operaris['situacio'] == 0){  ?>
  51.                 </tr>
  52.              
  53.             <?php
  54.             }// -- while( $operaris = mysql_fetch_array($sql_operaris) ){  
  55.         }// -- if($sql_operaris) {
  56.         ?> 
  57.         </tbody>   
  58.         </table>
  59.         </div>
  60.     </div>
Código Javascript:
Ver original
  1. function AltaEmpresaOperari(){
  2.        
  3.  
  4.         var msg = confirm("Desea Agregar este Operario?")      
  5.        
  6.         if ( msg ) {
  7.            
  8.            
  9.             $.post("configuracions/empresa/nou_operari.php",
  10.                   {
  11.                     id_empresa: $('#id_empresa').attr('value'),
  12.                     nom: $('#newnom').attr('value'),
  13.                     cognom: $('#newcognom').attr('value'),
  14.                     preu_ac: $('#newpreu_ac').attr('value'),
  15.                     preu_av: $('#newpreu_av').attr('value'),
  16.                    
  17.                     beforeSend: function(){
  18.                         if ($('#newnom').attr('value')==""){
  19.                             alert("El Nombre del Operario es un dato Obligatorio.");
  20.                             $("#newnom").focus();
  21.                             return false;
  22.                         }                                      
  23.                     },
  24.                     success: function(datos){
  25.                     cadena = "<tr>";
  26.                     cadena = cadena + "<td><input type='text' id='nom' name='nom' value='" + $("#newnom").attr('value') + "'/><td>";
  27.                     cadena = cadena + "<td><input type='text' id='cognom' name='cognom' value='" + $("#newcognom").attr('value') + "'/><td>";
  28.                     cadena = cadena + "<td><input type='text' id='preu_ac' name='preu_ac' value='" + $("#newpreu_ac").attr('value') + "'/><td>";
  29.                     cadena = cadena + "<td><input type='text' id='preu_av' name='preu_av' value='" + $("#newpreu_av").attr('value') + "'/><td>";
  30.                     cadena = cadena + "<td class='td_resultats' align='center' width='5%' title='Alta Reciente'><img src='../lib/img/generics/up.png'></td>";
  31.                     cadena = cadena + "</tr>";
  32.                     $("#empresa_operaris tbody").after(cadena);    
  33.                     },
  34.                     complete: function(){/*Quan s'hagi completat*/}
  35.             });
  36.         }
  37.  
  38.        
  39.     }

el caso es q en el BeforeSend, me hace la comprobación pero sigue y me inserta el operario aunque lo deje a nulo

en q estoy fallando?

y una duda mas: como podria hacer un "requery" de un div? es decir, al ocultarlo y luego al volverlo a mostrar se recalcularan los datos q contiene este div? el caso lo tengo en el mismo codigo, en la linea donde hay la llamada AltaBaixaOperari, q lo q hace esta funcion es darme de baja a un operario pero no ser como hacer es que me cambie la imagen segun su situacion al momento de darlo de alta o de baja.

la funcion es la siguiente:

Código Javascript:
Ver original
  1. function AltaBaixaOperari(accio,id_operari){       
  2.  
  3.    
  4.         if(accio == 'a'){
  5.            
  6.             var msg = confirm("Desea dar de Alta este Operario?")
  7.            
  8.         }
  9.         if(accio == 'b'){
  10.            
  11.             var msg = confirm("Desea dar de Baja este Operario?")
  12.            
  13.         }
  14.        
  15.        
  16.         if ( msg ) {
  17.             $.ajax({
  18.                 url: 'configuracions/empresa/altabaixa_operari.php',
  19.                 type: "GET",
  20.                 data: "accio="+accio+"&id_operari="+id_operari,
  21.                 success: function(datos){
  22.                     alert(datos);
  23.                 }
  24.             });
  25.         }
  26.         return false;
  27.     }


Saludos y gracias
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 12/01/2010 a las 11:10
  #2 (permalink)  
Antiguo 12/01/2010, 14:38
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery: Problema en el BeforeSend para comprobar datos

primero preguntá si quiere enviar los datos, después validá los campos, y si está correcto envialo, usa el beforeSend para mostrar una imagen que se está procesando el formulario y no para validar, que yo sepa no se usa para validar
  #3 (permalink)  
Antiguo 13/01/2010, 02:01
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Jquery: Problema en el BeforeSend para comprobar datos

ok, gracias por tu respuesta.
al final quedo asi y va bien...
Código Javascript:
Ver original
  1. function AltaEmpresaOperari(){
  2.        
  3.         if ($('#newnom').attr('value') == "") {
  4.                 alert("El Nombre del Operario es un dato Obligatorio.");
  5.                 $("#newnom").focus();
  6.                
  7.         } else {   
  8.  
  9.             var msg = confirm("Desea Agregar este Operario?")      
  10.        
  11.             if ( msg ) {       
  12.            
  13.            
  14.                 $.post("configuracions/empresa/nou_operari.php", {
  15.                
  16.                     id_empresa: $('#id_empresa').attr('value'),
  17.                     nom: $('#newnom').attr('value'),
  18.                     cognom: $('#newcognom').attr('value'),
  19.                     preu_ac: $('#newpreu_ac').attr('value'),
  20.                     preu_av: $('#newpreu_av').attr('value'),
  21.                         success: function(datos){
  22.                             cadena = "<tr>";
  23.                             cadena = cadena + "<td><input type='text' id='nom' name='nom' value='" + $("#newnom").attr('value') + "'/></td>";
  24.                             cadena = cadena + "<td><input type='text' id='cognom' name='cognom' value='" + $("#newcognom").attr('value') + "'/></td>";
  25.                             cadena = cadena + "<td><input type='text' id='preu_ac' name='preu_ac' value='" + $("#newpreu_ac").attr('value') + "'/></td>";
  26.                             cadena = cadena + "<td><input type='text' id='preu_av' name='preu_av' value='" + $("#newpreu_av").attr('value') + "'/></td>";
  27.                             cadena = cadena + "<td class='td_resultats' align='center' width='5%' title='Alta Reciente'><img src='../lib/img/generics/up.png'></td>";
  28.                             cadena = cadena + "</tr>";
  29.                             $("#empresa_operaris tbody").after(cadena);
  30.                         },
  31.                         complete: function(){/*Quan s'hagi completat*/
  32.                     }
  33.                 });
  34.             }          
  35.        
  36.         }
  37.        
  38.     }

en cuanto al segundo tema? se puede hacer un pequeño requery de una linea?

asi como existe el .remove() para eliminar, existe alguno para modificar ? es q para cuando le den al botoncito de alta/baja se cambie la imagen con su correspondiente funcion Alta/baja
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 13/01/2010 a las 02:15
  #4 (permalink)  
Antiguo 13/01/2010, 05:59
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery: Problema en el BeforeSend para comprobar datos

si, fijate como cambiar los atributos

http://docs.jquery.com/Attributes/attr#keyvalue

o agregar una clase

http://docs.jquery.com/Attributes/addClass#class

o puede servir toggleClass

http://docs.jquery.com/Attributes/toggleClass#class

o toggle que alterna funciones

$("selector").toggle(
function () {
alert("uno");
},
function () {
alert("dos");
}
);

Última edición por Dany_s; 13/01/2010 a las 06:04
  #5 (permalink)  
Antiguo 13/01/2010, 11:14
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Jquery: Problema en el BeforeSend para comprobar datos

Hola, he estado probando pero no llego a saber resolver el problema

Código Javascript:
Ver original
  1. function AltaBaixaTipusMaquina(accio,id){      
  2.  
  3.    
  4.         if(accio == 'a'){
  5.            
  6.             var msg = confirm("Desea dar de Alta este Tipo de Maquina?")
  7.             var txt = '<img id=img'+id+' src=../lib/img/generics/down.png'
  8.            
  9.         }
  10.         if(accio == 'b'){
  11.            
  12.             var msg = confirm("Desea dar de Baja este Tipo de Maquina?")
  13.             var txt = '<img id=img'+id+' src=../lib/img/generics/down.png'
  14.         }
  15.        
  16.        
  17.         if ( msg ) {
  18.             $.ajax({
  19.                 url: 'configuracions/tipus_maquina/altabaixa_tmaquina.php',
  20.                 type: "GET",
  21.                 data: "accio="+accio+"&id="+id,
  22.                 success: function(datos){
  23.                     alert(datos);
  24.                     $("img"+id).replaceWith(txt);
  25.                 }
  26.             });
  27.         }
  28.         return false;
  29.     }

pero el $('img'+id) parece ser q no lo acepta... como podria modificar eso para q rule?

en mi caso, es una lista de campos dinamicos... donde su id="img"+<?=$id_basedatos;?>

gracias de antemano!!
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #6 (permalink)  
Antiguo 13/01/2010, 17:08
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery: Problema en el BeforeSend para comprobar datos

te falta la almohadilla para ahcer referencia a un id
$('#img'+id)

Etiquetas: comprobar
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 22:08.