PHP - Se refresca toda la página

 
Vista:

Se refresca toda la página

Publicado por Damian (62 intervenciones) el 29/09/2014 16:29:42
Hola, tengo ya todo el código funcionando en php el cual contiene varios formularios con distintos id. Asi debe ser porque cada formulario va a tener distintos botones (de tipo submit). Todo se realiza en la misma página. Y como ya dije anda perfecto.
Pero claro, me gustaría hacer uso de JQuery, que si bien lo estoy utilizando no logro hacer que sólo refresque la parte del formulario (que se ejecuta en ese momento) y no toda la página.
Los formularios son de tipo post porque después tengo que trabajar con los if desde PHP (if (isset($_POST['Aceptar'])))
en sus distintos botones.

Les pongo un ejemplo de unos de los formularios que tengo en php:
1
2
3
4
5
6
7
8
9
10
echo "<form id='frJgo' method='post' action='preg-1.php'>";
   		echo "<div id='txtRes'>Usuario <span style='color:#036'>".$_SESSION['usr']."</span> autenticado correctamente. ¿Desea empezar a jugar ahora?";
   		echo "<br>";
   		echo "<input type='submit' name='Aceptar' id='Aceptar' value='Si'>&nbsp;&nbsp;";
   		echo "<input type='submit' name='Cancelar' id='Cancelar' value='Ahora no'></div>";
  		echo "</form>";
 
	if (isset($_POST['Aceptar'])){
		call_user_func('pregunta',false,$cxn,$fecha2);
	  }
La función call_user_func() va a traer otro formulario con un div (<div id='txtPreg'>) en donde también presenta unos option value y dos botones.


Y ahora como manipulo desde JQuery ese div, el formulario y los botones...para que no me refresque todo. Algunas cosas que he probado y no funcionan:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$("#Aceptar").submit(function(){ //tambien lo  probe con click()
	var url = "preg-1.php";
	$.ajax({
		type:"POST",
		url : url,
		data: $("#frJgo").serialize(),
		success: function(data){
		$("#txtPreg").slideDown(600);
	        $("#Respuesta").prop('disabled',true);
	        $("#txtRes").hide();
	     }
	});
 
//Tambien lo trabaje desde el id del form y no pasa nada
$( "frJgo" ).submit(function( event ) {
  if ( $( "#Aceptar" ).submit()) {
	$("#txtPreg").slideDown(600);
	$("#Respuesta").prop('disabled',true);
	$("#txtRes").hide();
    return;
  }
});

Y muchas pruebas más que he realizado y nada de nada...sigue refrescando toda la página. Sólo me falta la parte de JQuery, el código en PHP anda perfecto y no quiero tocar nada ahí.
Bueno espero que alguien me pueda ayudar. Se que se me hizo un poco largo el explicar y sólo puse una parte. Lo importante es que sólo quiero la parte de JQuery. Gracias!!!
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

Se refresca toda la página

Publicado por Damian (62 intervenciones) el 01/10/2014 15:02:03
¿Nadie que sepa que pueda estar sucediendo? Les pondría todo el código pero es muy largo. Sólo necesito que no me refresque toda la página, nada más.
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Se refresca toda la página

Publicado por xve (6935 intervenciones) el 01/10/2014 19:34:15
HOla Damian, prueba a poner en el form, algo así:
1
echo "<form id='frJgo' method='post' action='preg-1.php' onsubmit='return false;'>";

Coméntanos, ok?
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

Se refresca toda la página

Publicado por Damian (62 intervenciones) el 01/10/2014 23:25:40
Lo estuve probando y no me funciona de la forma que tengo el código en php, pero cree un form nuevo en php y si me funciona. Me estoy dando cuenta que el problema lo tengo en el if de php.
Por ejemplo si tengo:
1
2
3
4
5
6
7
8
9
if (isset($_POST['Aceptar'])){
echo "<form id='frJ' method='post' action='preg-1.php'>";
   		echo "<div id='txtref'>Usuario <span style='color:#036'> mondinga</span> autenticado correctamente. ¿Desea empezar a jugar ahora?";
   		echo "<br>";
   		echo "<input type='submit' name='Aceptar' id='Aceptar' value='Si'>&nbsp;&nbsp;";
   		echo "<input type='submit' name='Cancelar' id='Cancelar' value='Ahora no'></div>";
  		echo "</form>";
	?>
}
El Jquery no me trabaja...
...pero si ese bloque del formulario lo pongo suelto en php, sin el if:
1
2
3
4
5
6
7
echo "<form id='frJ' method='post' action='preg-1.php'>";
   		echo "<div id='txtref'>Usuario <span style='color:#036'> mondinga</span> autenticado correctamente. ¿Desea empezar a jugar ahora?";
   		echo "<br>";
   		echo "<input type='submit' name='Aceptar' id='Aceptar' value='Si'>&nbsp;&nbsp;";
   		echo "<input type='submit' name='Cancelar' id='Cancelar' value='Ahora no'></div>";
  		echo "</form>";
	?>
El JQuery anda perfecto y no me refresca toda la página. Pero lamentablemente necesito esos if de php y desde ahí mostrar los formularios y distintos divs. ¿Por qué no hace nada dentro del if (isset($_POST['Aceptar'])){}?

Seguire probando de todas formas
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

Se refresca toda la página

Publicado por Damian (62 intervenciones) el 02/10/2014 14:29:05
Bueno, sigo probando algunas cosas. Antes decía que no entraba al if (isset($_POST['Aceptar'])){} de php y ahora se porque y me quedan mas dudas que antes. El problema está con ese onsubmit='return false;' que se pone en el form, aunque también me di cuenta que se puede poner en JQuery, para el caso es lo mismo.
Se sabe que con ese return false; funciona y no refresca toda la página, pero el gran problema es que no entra al if de php, así que no me sirve de nada.

Quizás deba preguntar de otra forma desde php, pero no se me ocurre que cosa hacer si no es con el clásico if (isset($_POST['Aceptar'])){}, ya que si o sí debo usarlo.

Y si los botones del formulario son de tipo button, ¿como debería preguntar desde php? En vez de POST, ¿que se hace? o no se puede.
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