Tengo este fragmento de código en mi archivo php:
<?php if(isset($_POST['submit'])){ if($_POST['email'] != ''){ $email = $_POST['email']; $query = "INSERT INTO user(email) VALUES('". $email . "')"; $stmt = $db ->query($query); if($stmt){ echo "<script>displayPopup('success')</script>"; }else{ echo ""; } } } ?>Mi archivo JS se incluye antes de la etiqueta de cierre y está bien cargado. Pero tengo un error al decir que la función displayPopup no está definida
Alguna idea ? :(
El problema principal, por lo que puedo decir, es que la función displayPopup se define al final de su documento.
PHP está del lado del servidor y JS está del lado del cliente, las condiciones para hacer eco de su script ocurren antes de que se cargue/lea el javascript.
Esto significa que en el momento en que se ejecuta ese script, la función "displayPopup" no existe, de hecho.
La forma más rápida de probar es agregar el siguiente código justo antes del final de su etiqueta < /head>:
<script type="text/javascript"> function displayPopup(msg){ alert(msg); } </script>Obviamente, siempre puede reemplazar esa función con cualquiera que sea su función displayPopup real. Una alternativa a esto es usar Ajax para enviar sus formularios para una experiencia más fluida, pero lo anterior debería solucionar su problema.
¡Espero que esto ayude!