Foros del Web » Programando para Internet » Jquery »

Error en envio de formulario

Estas en el tema de Error en envio de formulario en el foro de Jquery en Foros del Web. Buenos días amigos del foro, esta oportunidad mi problema esta en enviar una variable a una pagina PHP por medio de ajax, me explico: Necesito ...
  #1 (permalink)  
Antiguo 18/11/2012, 11:37
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 16 años, 6 meses
Puntos: 7
Error en envio de formulario

Buenos días amigos del foro, esta oportunidad mi problema esta en enviar una variable a una pagina PHP por medio de ajax, me explico:

Necesito validar si un documento esta en una base de datos de mySQL por medio de JQuery y ajax, pero a pesar de todo lo que consulto no me funciona, simplemente no me da, no hace nada; mi codigo es este:

JS
Código:
$(document).ready(function(){
$('#boton').click(function(){
			//$('#info_valida').html('<img src="images/loader.gif" alt="" width="10" height="10" />').fadeOut(1000);
			var ced = $('#ced_encargado').val();
			var dataString = 'doc='+ced;
			//alert("Se va a enviar");
        	$.ajax({	
	            type: "POST",
	            url: "../php/valida.php",
	            data: dataString,
	            //alert("Bien hasta aqui con "+ced);
	            success: function(data) {
	                $('#info_valida').fadeIn(1000).html(data);
	                //alert("Se envio y creo recibio");
	            }
        	});
			$('#enviar').show();
		});
});
Como pueden ver comente unos alert que utilizo para verificar que ingrese a la funcion de ajax y les cuento que nunca entra, solo me da el primer alert, osea antes de entrar al ajax

PHP
Código:
include('conex.php');
//$myCed = $_POST['doc'];
$myCed = $_GET['doc'];

	$sql=mysql_query("select docRectores,nombre_rector,institucion from rectores where docRectores ='$myCed'");
	//$results = mysql_query( $sql) or die('ok');

	$n=mysql_num_rows($sql);

	if($n<1){
		echo 'No esta en la BD';
	}else{
		echo 'Si esta en la BD.';
	}
Espero me puedan brindar su ayuda.
De antemano muchas gracias por su tiempo y colaboración
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #2 (permalink)  
Antiguo 18/11/2012, 11:42
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en envio de formulario

Cita:
Iniciado por acumulador Ver Mensaje
Buenos días amigos del foro, esta oportunidad mi problema esta en enviar una variable a una pagina PHP por medio de ajax, me explico:

Necesito validar si un documento esta en una base de datos de mySQL por medio de JQuery y ajax, pero a pesar de todo lo que consulto no me funciona, simplemente no me da, no hace nada; mi codigo es este:

JS
Código:
$(document).ready(function(){
$('#boton').click(function(){
			//$('#info_valida').html('<img src="images/loader.gif" alt="" width="10" height="10" />').fadeOut(1000);
			var ced = $('#ced_encargado').val();
			var dataString = 'doc='+ced;
			//alert("Se va a enviar");
        	$.ajax({	
	            type: "POST",
	            url: "../php/valida.php",
	            data: dataString,
	            //alert("Bien hasta aqui con "+ced);
	            success: function(data) {
	                $('#info_valida').fadeIn(1000).html(data);
	                //alert("Se envio y creo recibio");
	            }
        	});
			$('#enviar').show();
		});
});
Como pueden ver comente unos alert que utilizo para verificar que ingrese a la funcion de ajax y les cuento que nunca entra, solo me da el primer alert, osea antes de entrar al ajax

PHP
Código:
include('conex.php');
//$myCed = $_POST['doc'];
$myCed = $_GET['doc'];

	$sql=mysql_query("select docRectores,nombre_rector,institucion from rectores where docRectores ='$myCed'");
	//$results = mysql_query( $sql) or die('ok');

	$n=mysql_num_rows($sql);

	if($n<1){
		echo 'No esta en la BD';
	}else{
		echo 'Si esta en la BD.';
	}
Espero me puedan brindar su ayuda.
De antemano muchas gracias por su tiempo y colaboración
Estas ocupando POST por lo que debes dejarlo asi:

//$myCed = $_GET['doc'];
$myCed = $_POST['doc'];
  #3 (permalink)  
Antiguo 18/11/2012, 11:45
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 16 años, 6 meses
Puntos: 7
Respuesta: Error en envio de formulario

Gracias por tu respuesta, pero precisamente comente esa linea por que estaba probando con las dos opciones y no me funciona para nada!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #4 (permalink)  
Antiguo 18/11/2012, 12:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 6 meses
Puntos: 1567
Respuesta: Error en envio de formulario

la función la veo bien, lo más probable es que el evento click lo tengas dentro del form sobre un input type submit ó sobre un <button>enviar</button>, tenés que ponerlo sobre un <input type="button"> ú algún otro que no te genere submit

una prueba sencilla
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7.  
  8. <script type="text/javascript">
  9. //<![CDATA[
  10. $(document).ready(function(){
  11. $('#boton').click(function(){
  12.             //$('#info_valida').html('<img src="images/loader.gif" alt="" width="10" height="10" />').fadeOut(1000);
  13.             var ced = $('#ced_encargado').val();
  14.             var dataString = 'doc='+ced;
  15.             //alert("Se va a enviar");
  16.             $.ajax({   
  17.                 type: "POST",
  18.                 url: "valida.html",
  19.                 data: dataString,
  20.                 //alert("Bien hasta aqui con "+ced);
  21.                 success: function(data) {
  22.                     $('#info_valida').fadeIn(1000).html(data);
  23.                     //alert("Se envio y creo recibio");
  24.                 }
  25.             });
  26.             $('#enviar').show();
  27.         });
  28. });
  29.  
  30. //]]>
  31. </head>
  32. <input type="text" value="" id="ced_encargado">
  33. <input type="button" id="boton" value="envío desde input type button">
  34. <input type="button" id="boton" value="envío desde input type submit">
  35. <button id="boton">Envío desde tag button</button>
  36. </form>
  37. <div id="info_valida"></div>
  38. </body>
  39. </html>

valida.html

Código HTML:
Ver original
  1.     <body>
  2. No está en la BD
  3. </body>
  4. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 18/11/2012, 18:54
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 16 años, 6 meses
Puntos: 7
Respuesta: Error en envio de formulario

Hola, muchas gracias por tu tiempo en la respuesta; pero te cuento que el evento clic lo tengo en un div simplemente, no es un button o algo raro, si te cuento que el div que se invoca para el clic de la función para validar esta dentro de un formulario que tiene un submit; no se sí eso sea el error pues he visto varios ejemplos y lo haces muy parecido a como lo tengo. Espero me puedan dar una luz en este enredo.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #6 (permalink)  
Antiguo 18/11/2012, 19:21
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 6 meses
Puntos: 1567
Respuesta: Error en envio de formulario

Como lo he puesto funciona, reproducí el ejemplo, solo hace falta que lo verifiques con tu php

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 18/11/2012, 20:29
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 16 años, 6 meses
Puntos: 7
Respuesta: Error en envio de formulario

Cita:
Iniciado por emprear Ver Mensaje
Como lo he puesto funciona, reproducí el ejemplo, solo hace falta que lo verifiques con tu php

SAludos
Hola, de nuevo muchas gracias; te cuento que cambien mi div que funcionaba como boton y me aparece deshabilitado entonces no funciona para nada. Ademas corri tu ejemplo y pasa nada!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #8 (permalink)  
Antiguo 18/11/2012, 21:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 6 meses
Puntos: 1567
Respuesta: Error en envio de formulario

@acumulador, el código que te pasé si funciona, lo que sucede con el tuyo es que no estás pasando correctamente los valores al php,
Si decis que usas un div, tambíen debe de funcionar. Pero te sugiero que uses un submit para evitar problemas si el usuario no tiene habilitado javascript

form.html
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Post Ajax</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7.  <script type="text/javascript">
  8. //<![CDATA[
  9. $(document).ready(function(){
  10.     $('#boton').click(function(){
  11.     var ced = $('#ced_encargado').val();
  12.         $.post("valida.php",{ced_encargado:ced},function(data){
  13.         $('#info_valida').fadeIn(1000).html(data);
  14.         });
  15.     });
  16. });
  17. //]]>
  18. </head>
  19.     <p>Nombre de usuario registrado: <b>eduardo</b></p>
  20. <form action="procesa.php" method="post">
  21. <input type="text" value="" id="ced_encargado" name="ced_encargado" />
  22. <!-- div id="botonq" style="padding: 5px; margin: 10px 0; background: orange; width: 170px; cursor: pointer;">Envío desde tag div</div -->
  23. <input type="submit" id="boton" onclick="return false;"/>
  24. </form>
  25. <div id="info_valida" style="margin-top:20px;"><!-- mensaje --></div>
  26. </body>
  27. </html>

valida.php

Código PHP:
Ver original
  1. <?php
  2. if($_POST['ced_encargado'] == "eduardo"){
  3. echo "existe";
  4. }else{
  5. echo "No existe";  
  6. }
  7. ?>

Demo
http://foros.emprear.com/ajax/post2/

Si querés el botón submit lo podés estilizar
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 19/11/2012, 18:54
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 16 años, 6 meses
Puntos: 7
Respuesta: Error en envio de formulario

Hola emprear, muchas gracias por tu tiempo. El problema con el boton de submit es que tengo un formulario grande y dentro esta esta validación que requiero antes de enviar los datos a otro archivo PHP. Vi tu ejemplo e intento implementarlo que muestras pero al crear un botón este asume el submit y como te explique así no debe ser, este boton solo debe validar si el usuario existe o no.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...

Etiquetas: ajax, formulario, funcion, html, js, php, botones
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 19:44.