Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2011, 04:42
hallyers
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Comentarios duplicados (JQUERY y PHP)

Buenas,

Tengo un problema al procesar un formulario gestionado con jquery para enviar comentarios sin recargar la página.
Los comentarios se duplican a partir del segundo comentario seguido, es decir:

publicación 1

Comentario1:Este es mi primer comentario
Comentario2: Este es mi segundo comentario
Comentario3: Este es mi segundo comentario
Comentario4: Este es mi tercer comentario
Comentario4: Este es mi tercer comentario
Comentario4: Este es mi tercer comentario


Y asi sucesivamente. Que conste que no hay ningún contador ni nada.

Los comentarios no se duplican si cada vez que envío uno recargo la página, entonces supongo que debe ser del jquery.

Una parte del código:

Código:
<div id="result<?php echo $id; ?>" class="recarga">
		<?php 
		   $consulta_comentarios=mysql_query("SELECT comentarios.*, usuarios.nick FROM comentarios, usuarios WHERE comentarios.id_publicacion=".$id." and comentarios.id_usuario=usuarios.id ORDER BY id");
		  while($campo_comentario=mysql_fetch_array($consulta_comentarios)){
		  $id_publicacion=$campo_comertario['id_publicacion'];
		  $comentario=$campo_comentario['texto'];
		  $id_comentario=$campo_comentario['id'];
		  $nick=$campo_comentario['nick'];
		  ?>
		  
		  <div id="comentarios<?php echo $id_comentario; ?>" style="background-color:#d5dbdf; width:590px; margin-left:0px; margin-top:5px;">

		  <?php 
		 
		 

  			
	
		  echo "<strong>".$nick."</strong>: ".$comentario; ?>
		  </div>
		 
		  <?php } ?>	
		  </div>
		  </td>
		  </tr>
		  <form id="formulario_comentario<?php echo $id; ?>">
		<tr>
		
		  <td colspan="2"><textarea name="gola" id="<?php echo $id; ?>" cols="70" rows="2" onfocus="detectarId(<?php echo $id; ?>)"></textarea>
		  <input type="text" id="oculto<?php echo $id; ?>" name="id_publi" style="display:none" />
		    <label>
		    <input type="submit" value="Enviar" id="<?php echo $id; ?>" class="submit2" />
			
		    </label></td>
		  
		  </tr>
		   </form>
		   

			
			
		<tr>
		  <td colspan="2">
		  	<?php 
			
		
			
			 ?>
		 	  </td>
		  </tr>
		<tr>
		  <td colspan="2"><div align="right">
		  
		  
		    </div>
		    <div align="right"></div>
          <div align="right"></div></td>
		  </tr>
		</table>
		
		<?php 
		}//cierra las publicaciones
		$id_publi=$_GET['id_publi'];
			
			if(isset($_GET['gola']) && $id_publi==$id){
			$texto_comentario=$_GET['gola'];
			
			mysql_query("INSERT INTO comentarios (texto, id_usuario, id_publicacion) VALUES ('".$texto_comentario."',".$_SESSION['id_usuario'].",".$id.")");
			//mysql_query("INSERT INTO publicaciones (titulo, contenido, id_usuario, id_categoria) VALUES ('".$titulo."', '".$contenido."',".$idusuario.",".$idcategoria.")");
			
			}else{
			$texto_comentario="ERROR";
			}
		}//todo lo de arriba es visible para el usuario logueado
		if($_SESSION['login']==false){
		echo "<h4 align='center'><br /><br />Para visualizar el contenido es necesario loguearse</h4><br /><br /><br /><br /><br />";
		}
		?>
		
		<script> 
		

		 
		  
		
			$(".submit2").click
			(
				function() 
				{
				
				   variableSubmit = $(this).attr('id');
				
				   
					function recargarcoments()
					{
					  $("#result"+ variableSubmit).load("comentarios.php?id_publicacion=" + variableSubmit);
					}

					setInterval (recargarcoments, 2500);

				   // Interceptamos el evento submit
					$("#formulario_comentario"+variableSubmit).submit
					(
						function() 
						{
							alert("#formulario_comentario"+variableSubmit);
							  // Enviamos el formulario usando AJAX
							$.ajax
							(
								{
								type: 'GET',
								url: $(this).attr('action'),
								data: $(this).serialize(),
								
								// Mostramos un mensaje con la respuesta de PHP
								success: function(data) 
									{
								
					
									
									}
								}
							)        
        					return false;
    					}
					); 
			}
		)  
		
 </script>
Si revisáis el código os daréis cuenta que he hecho un alert del formulario con el que envío los comentarios. cuando hago clic en enviar y el comentario aparece duplicado n veces también aparecerán n alerts.

Le preguntado a un colega que tiene alguna noción de jquery y no encuentra el problema, a ver si podéis echarme un mano please.

Saludos.