Tengo un formulario que está vinculado a signup.js que cuando alguien presiona el botón para comenzar a chatear, debería redirigir a user.php en mi caso, no funciona
location.href = "user.php";está dando el problema porque tengo éxito cuando envío el formulario. Pero no funciona. Simplemente permanece en la página de inicio de sesión y no pasa nada pero da éxito
const form = document.querySelector(".signup form"), continueBtn = form.querySelector(".button input"), errorText = form.querySelector(".txt-error"); form.onsubmit = (e) => { e.preventDefault(); //preventing from submitting } continueBtn.onclick = () =>{ // AJAX code refernce w3schools let xhr = new XMLHttpRequest(); //object created xhr.open("POST", "php/signup.php", true); xhr.onload = () =>{ if(xhr.readyState === XMLHttpRequest.DONE){ if(xhr.status === 200){ let data = xhr.response; if(data == "success"){ location.href = "user.php"; }else{ errorText.textContent = data; errorText.style.display = "block"; } } } } // send form data to php through ajax let formData = new FormData(form); //obj created xhr.send(formData); //sending data to php } Estos son mis códigos, cualquier ayuda será apreciada. Lo que estoy haciendo es que cuando el usuario hace clic en el botón Enviar, se ejecuta una solicitud ajax para apuntar al script php que inicia sesión en el usuario y, si el usuario inició sesión correctamente, repite el mensaje "login_successful" a la solicitud ajax. Al usar la declaración if , verifico si el mensaje es "login_successful"; de lo contrario, se muestra el error.
Si el mensaje es "login_successful", el script redirige al usuario a la nueva página 'user.php' usando
Su variable de form se selecciona con .signup form de registro, que encontrará el primer elemento <form> dentro del primer elemento con una clase de signup . Por ejemplo:
<div class = "signup"> <form> ... </form> </div> Presumiblemente, tiene un formulario con el signup de clase, por lo que desea el selector form.signup
Una vez que seleccione el elemento correcto, su oyente form.onsubmit debería funcionar.
Lo mismo ocurre con su selector continueBtn : en este momento está seleccionando un elemento <input> dentro de otro elemento con el button de clase. Presumiblemente, desea el selector input.button .