PHP - Ingresar formulario sin recargar la pagina

 
Vista:
sin imagen de perfil

Ingresar formulario sin recargar la pagina

Publicado por Marcos (1 intervención) el 20/07/2020 16:04:52
Buenas a todos, estoy dando mis primeros pasos en AJAX y estoy con mi primer inconveniente a la hora de enviar un formulario sin que recargue la página. Lo que intento hacer es un "envio de solicitud de amistad" y quiero que una vez enviado los datos del formulario el boton de "enviar solicitud" cambie a "cancelar solicitud", pero simplemente queda igual aunque si se envian los datos. "Cancelar solicitud" sería tambíen un botón que haría el mismo procedimiento sólo que al revés y en lugar de insertar, eliminaría.

1
2
3
4
5
6
7
8
9
10
11
<?php
if ($estadoA['estado'] == 0){ //SI EN LA BDD NO HAY RELACION ENTRE USUARIOS
    $boton="Enviar solicitud de amistad";
} else {
    $boton="Cancelar solicitud";
}
?>
 
<button id="solicitud" onclick="enviar2('<?php echo $_SESSION['user_id']?>','<?php echo $_GET['id']?>')">
    <?php echo $boton;?>
</button>

PAGINA FUNCTIONS.JS

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
function enviar2(emisor,receptor){
  b=$('#solicitud').html();
  if(b=="Enviar solicitud de amistad"){
    url="../amigos/solicitud-enviada.php";
 
  } else {
    url="../amigos/eliminar-solicitud.php";
  }
 
  cadena= "emisor=" + emisor + "&receptor=" + receptor;
  alert(url);
   $.ajax({
    type:'POST',
    url:url,
    data:cadena,
    success:function(r){
      if (r!=0) {
        alert($('#solicitud').html());
        if (b=="Enviar solicitud de amistad"){
          $('#solicitud').html("Cancelar solicitud");
        } else{
          $('#solicitud').html("Enviar solicitud de amistad");
        }
        alert($('#solicitud').html());
      } else {
        alert('error');
      }
 
    }
  });
  return false;
}

Como verán, redirecciono la url según el valor obtenido por el id del botón pero lo hace mal, supongamos que no hay relación entre los usuarios deberia decir "Enviar solicitud", una vez que doy click he visto mediante un alert, que se redirecciona al eliminar en lugar de que sea a solicitud-enviada, es decir, no cumple la función requerida, aunque curiosamente, sin recargar la página y darle nuevamente al boton, hace todo correctamente. Eso quiere decir que el valor inicial al cargar la página me está mandando un valor incorrecto el id del botón, agradecería si me pueden decir que estoy haciendo mal.
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