Foros del Web » Programando para Internet » Jquery »

Error Añadiendo campos - se duplica + jquery

Estas en el tema de Error Añadiendo campos - se duplica + jquery en el foro de Jquery en Foros del Web. Hola, uso la siguiente función para añadir campos a una lista, así voy refrescando a mesura que los van entrando, el problema es que me ...
  #1 (permalink)  
Antiguo 16/12/2009, 03:48
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Error Añadiendo campos - se duplica + jquery

Hola, uso la siguiente función para añadir campos a una lista, así voy refrescando a mesura que los van entrando, el problema es que me lo duplica, es decir, que me muestra dos campos iguales pero solo me inserta uno en la bd, en que estoy fallando???


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").val() + "'/><td>";
  27.                     cadena = cadena + "<td><input type='text' id='cognom' name='cognom' value='" + $("#newcognom").val() + "'/><td>";
  28.                     cadena = cadena + "<td><input type='text' id='preu_ac' name='preu_ac' value='" + $("#newpreu_ac").val() + "'/><td>";
  29.                     cadena = cadena + "<td><input type='text' id='preu_av' name='preu_av' value='" + $("#newpreu_av").val() + "'/><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.     }


Código HTML:
<div id="operaris_empresa" style="display:none;">
		<form id="frmOperaris" name="frmOperaris" method="post" action="javascript: AltaEmpresaOperari();">
		<input type="hidden" id="id_empresa" name="id_empresa" value="<?php echo $_GET['id'];?>"/>
		<table class="taula_resultats">	
		<tr>
			<th class="th_resultats">Nombre</th>
			<th class="th_resultats">Apellido</th>
			<th class="th_resultats">Precio Preventivo</th>
			<th class="th_resultats">Precio Averia</th>
			<th rowspan="2"><input type="image" src="../lib/img/generics/ok.png" id="submit" name="submit" value="Guardar"></th>				
		</tr>
		<tr>
			<td class="td_resultats" align="left"><input type="text" id="newnom" name="newnom" value=""/></td>
			<td class="td_resultats" align="left"><input type="text" id="newcognom" name="newcognom" value=""/></td>
			<td class="td_resultats" align="left"><input type="text" id="newpreu_ac" name="newpreu_ac" value=""/></td>			
			<td class="td_resultats" align="left"><input type="text" id="newpreu_av" name="newpreu_av" value=""/></td>
		</tr>
		</table>
		</form>
		<div id="list_operaris" class="list_operaris">		
		<table id="empresa_operaris" class="taula_resultats">	
		<tr>
			<th class="th_resultats">Nombre</th>
			<th class="th_resultats">Apellido</th>
			<th class="th_resultats">Precio Preventivo</th>
			<th class="th_resultats">Precio Averia</th>
			<th>&nbsp;</th>
		</tr>
		<tbody>
		<?php
		if($sql_operaris) {
			while( $operaris = mysql_fetch_array($sql_operaris) ){		
			?>	
				<tr id="fila-<?php echo $operaris['id_operari'] ?>">
					<td class="td_resultats" align="left" width="25%"><input type="text" id="nom" name="nom" value="<?php echo utf8_decode($operaris['nom']); ?>"/></td>
					<td class="td_resultats" align="left"><input type="text" id="cognom" name="cognom" value="<?php echo utf8_decode($operaris['cognom']); ?>"/></td>
					<td class="td_resultats" align="left"><input type="text" id="preu_ac" name="preu_ac" value="<?php echo $operaris['preu_ac']; ?>"/></td>			
					<td class="td_resultats" align="left"><input type="text" id="preu_av" name="preu_av" value="<?php echo $operaris['preu_av']; ?>"/></td>			  		  
					<?
						if($operaris['situacio'] == 0){?>
						
							<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>
						
						<?php	}else{ 	?>
						
							<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>
						
						<?php 	}//if($operaris['situacio'] == 0){  ?>
				</tr>
			  
			<?php
			}
		}
		?>	
		</tbody>	
		</table>
		</div>
	</div> 
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

Última edición por sergi_climent; 16/12/2009 a las 05:16 Razón: concretar mas el titulo
  #2 (permalink)  
Antiguo 16/12/2009, 07:09
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Error Añadiendo campos - se duplica + jquery

no entendí que te duplica o que es lo que no quieres duplicar, por lo que veo al hacer
$("#empresa_operaris tbody").after(cadena);

estas agregando los tr que generas en variable "cadena" despues del tbody de la tabla #empresa_operaris y los ids y name de los imput que generas estan estáticos siendo siempre los mismos, o sea que ahi se repite

no quieres repetir los id y name, no quieres que se repita o apilen las filas? no entendi bien

Última edición por Dany_s; 16/12/2009 a las 07:23
  #3 (permalink)  
Antiguo 16/12/2009, 08:35
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Error Añadiendo campos - se duplica + jquery

bueno, voy a intentar a explicarme mejor.

es una pagina con un formulario para insertar nuevos operarios, y debajo un div que a mesura que los voy insertando vaya mostrando los nuevos operarios. El caso es que cuando inserto uno, en el div me lo muestra duplicado, porque?

lo que hace la funcion es comprobar que el nombre no es nulo y llamar a una pagina donde inserto este operario, y añadirme ese nuevo opeario en la lista que contiene el div.


me explique mejor?

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
  #4 (permalink)  
Antiguo 16/12/2009, 09:55
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Error Añadiendo campos - se duplica + jquery

ahhh fijate la cabecera de tu tabla como la tienes solo con tr y falta thead y entonces como que se interpreta 2 tbody :)

fijate que si haces un alert ( $("#empresa_operaris tbody").length ); te da resultado 2

arregla el encabezado de la tabla tiene que ser asi

Código HTML:
<thead>
  <tr>
    <th></th>
  </tr>
</thead> 
  #5 (permalink)  
Antiguo 16/12/2009, 10:00
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
De acuerdo Respuesta: Error Añadiendo campos - se duplica + jquery

Cita:
Iniciado por Dany_s Ver Mensaje
ahhh fijate la cabecera de tu tabla como la tienes solo con tr y falta thead y entonces como que se interpreta 2 tbody :)

fijate que si haces un alert ( $("#empresa_operaris tbody").length ); te da resultado 2

arregla el encabezado de la tabla tiene que ser asi

Código HTML:
<thead>
  <tr>
    <th></th>
  </tr>
</thead> 

perfecto! puff, que despiste!!!

muchas 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
  #6 (permalink)  
Antiguo 16/12/2009, 10:22
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Error Añadiendo campos - se duplica + jquery

creo que si no tiene el pie tfoot de la tabla no es obligatorio la etiqueta thead

fijate que funciona sin el thead pero si arreglas el error que hay en el onclick que tienes la funcion AltaBaixaOperari queda bien


estas usando jquery asi que tratar no poner el evento onclick en los elemtos

fijate los eventos de jquery
  #7 (permalink)  
Antiguo 16/12/2009, 10:26
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Error Añadiendo campos - se duplica + jquery

Cita:
Iniciado por Dany_s Ver Mensaje
creo que si no tiene el pie tfoot de la tabla no es obligatorio la etiqueta thead

fijate que funciona sin el thead pero si arreglas el error que hay en el onclick que tienes la funcion AltaBaixaOperari queda bien


estas usando jquery asi que tratar no poner el evento onclick en los elemtos

fijate los eventos de jquery
bueno, estoy iniciándome en jquery, como podría evitar el onclick en los elementos?
__________________
"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
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:05.