JQuery - insertar consulta en Mysql con php y jquery

   
Vista:

insertar consulta en Mysql con php y jquery

Publicado por Iván (8 intervenciones) el 22/01/2016 19:50:11
Buenas tengo un quebradero de cabeza enorme, no se apenas de javascript y menos de jquery xd.
Tengo un chat donde escribo un mensaje, y envio datos con jquery a un archivo php, el script funciona perfectamente sin jquery, pero cuando envio por jquery no se hace el insert, se recarga la pantalla y no veo cual puede ser el problema.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<form method="post">
	<textarea name="mensajechat" id="mensajechat"></textarea>
	<input type="hidden" name="usuario" id="usuario" value="<?php echo $_SESSION['usuario_email']; ?>">
	<input type="hidden" name="destinatario" id="destinatario" value="info@boostyourlol.com">
	<button class="btn btn-info" onClick="javascript:EnviarDatos();">Enviar</button>
</form>
<div id="#mensaje"></div>
 
 
			<script type="text/javascript">
				function EnviarDatos(){
					var mensaje = document.getElementById('mensajechat').value;
					var usuario = document.getElementById('usuario').value;
					var destino = document.getElementById('destinatario').value;
 
					$.ajax({
						type:'POST',
						url:"enviarchat.php",
						data:('mensaje='+mensaje+'&usuario='+usuario+'&destino='+destino),
						success: function(respuesta){
							if(respuesta==1){
								$('#mensaje').html('Tu mensaje se ha enviado correctamente');
							}
							else{
								$('#mensaje').html('Tu mensaje no se ha enviado');
							}
						}
					})
				}
			</script>
		</div>
	</div>
</div>
 
 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>




Ese seria el codigo de la pagina principal, y el enviarchat.php es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require('inc/dbconnect.php');
 
if($_POST['mensajechat'])
{
	$StrMensaje =$_POST['mensajechat'];
	$StrUsuario =$_POST['usuario'];
	$StrDestinatario =$_POST['destinatario'];
	$FechaMensaje=date("Y-m-d H:i:s");
 
	$InserSql = sprintf("INSERT INTO `db599871615`.`LoL_Mensajes` (`Nid`, `StrUsuario`, `StrDestinatario`, `Date`, `StrMensaje`) VALUES (NULL, '".$StrUsuario."', '".$StrDestinatario."', '".$FechaMensaje."', '".$StrMensaje."');");
 
	if($Resultado = mysqli_query($connect,$InserSql)){
		echo 1;
	}
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

insertar consulta en Mysql con php y jquery

Publicado por xve (557 intervenciones) el 22/01/2016 22:13:13
Hola Ivan, a simple vista parece que esta correcto... puedes revisar la consola del navegador para ver si llegan los datos correctamente al archivo php?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

insertar consulta en Mysql con php y jquery

Publicado por Iván (8 intervenciones) el 23/01/2016 12:50:16
1
if($_POST['mensajechat'])
Tenia un if, pero en ningun momento le he pasado el parametro mensajechat ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

insertar consulta en Mysql con php y jquery

Publicado por Vainas (96 intervenciones) el 23/01/2016 13:18:48
Buenas:

Puede que se este refrescando la web al estar dentro de un form y no te des cuenta. Prueba con lo siguiente:

1
2
3
function EnviarDatos(event){
...
event.preventDefault();

tambien has un cambio aqui:

1
<button class="btn btn-info" onclick="EnviarDatos(event);">Enviar</button>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

insertar consulta en Mysql con php y jquery

Publicado por Vainas (96 intervenciones) el 23/01/2016 13:27:11
Adicional a lo anterior:

no hagas esto:

1
data:('mensaje='+mensaje+'&usuario='+usuario+'&destino='+destino)

cuando si estas en jQuery puedes hacer esto:

1
data: $('form').eq(0).serialize();

y ya se encarga el de codificar todos los inputs que hay en el form.

Otra mas:

No creo que sea necesario hacer esto:

1
<input type="hidden" name="usuario" id="usuario" value="<?php echo $_SESSION['usuario_email']; ?>">

Ya que precisamente que sea una variable de session indica que se guarda en el servidor y la puedes recuperar alli sin tener que enviar nada al cliente.

Pueba a eliminarla y en tu servidor solo usas:

1
$_SESSION['usuario_email'];

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar