Foros del Web » Programando para Internet » Jquery »

Comentarios duplicados (JQUERY y PHP)

Estas en el tema de Comentarios duplicados (JQUERY y PHP) en el foro de Jquery en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/01/2011, 04:42
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 2 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.
  #2 (permalink)  
Antiguo 10/01/2011, 06:05
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 3 meses
Puntos: 65
Respuesta: Comentarios duplicados (JQUERY y PHP)

estas asignando un submit en cada click

usa solo el submit, cuando insertes el comentario no hace falta que traigas los comentarios, que te devuelva solo un mensaje si cargo bien porque el comentarios ya lo tenes en el form


cuando publiques un código no lo hagas con el código php porque dificulta la lectura, publicá el html que se genera
  #3 (permalink)  
Antiguo 11/01/2011, 12:32
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Comentarios duplicados (JQUERY y PHP)

Lo he hecho como me has dicho y he podido solucionarlo.

Ok, a la próxima el código lo publico en html.
Gracias por molestarte en leerlo y por ayudarme.

Saludos.

Etiquetas: comentarios, duplicados, php
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 07:40.