View Single Post
Old 13-12-2017, 11:58   #1
Lord_Brisingr
Junior Member
 
Iscritto dal: Dec 2014
Messaggi: 18
[AJAX/PHP]Recuperare variabili da PHP con AJAX

Salve a tutti, ho un problema nel stampare il seguente alert:
Codice:
 alert("Grazie per esserti registrato. Clicca OK per tornare alla home");
                                window.location = "index.php";
Lo scopo è quello di segnalare che la registrazione sia andata a buon fine, evitando che la pagina si ricarichi ed utilizzando, così, ajax. Solo che, una volta controllato, attraverso una query, l'esito della registrazione, la variabile $alldone non viene impostata così come dovrebbe essere, per permettere, nel metodo success di ajax, di stampare l'alert. Ciò non avviene, dal momento che la variabile non viene modificata. Sapreste aiutarmi? Grazie mille.
Codice:
<?php
$errore = "";
$alldone = false;
session_start();

require_once ('class.manifold.php');
$class = new manifold();
$html = $class->title();
echo $html;
$class->menu();
include("conn.php");
?>
<html>
    <head>

        <link rel="stylesheet" href="css/style.css" type="text/css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#input_form").submit(function () {
                    var name = $("#nick").val();
                    var email = $("#email").val();
                    var password = $("#password").val();
                    $.ajax({
                        url: '<?php $_SERVER['PHP_SELF']; ?>',
                        type: "POST",
                        data: "password=" + password + "&nick=" + name + "&email=" + email,
                        success: function () {
                            <?php
                        
                            if($alldone == true){
                            ?>
                                alert("Grazie per esserti registrato. Clicca OK per tornare alla home");
                                window.location = "index.php";
                            <?php
                            }
                            ?>
                        }
                    });

                    return false;
                });

            });
        </script>
    </head>

    <body>
        <?php
        if ($_SERVER["REQUEST_METHOD"] == "POST") {

            $nick = $_POST["nick"];
            $pass = $_POST["password"];
            $email = $_POST["email"];


            $sql = "SELECT nick FROM moderatore WHERE nick = '$nick'";
            echo $sql;
            $result = $conn->query($sql);
            if ($result->num_rows == 0) {
                //criptazione pass


                $pass = md5($pass);
                $sql = "INSERT INTO moderatore (email, nick, password) VALUES ('$email', '$nick', '$pass')";
                $alldone = true;
                echo $sql;
                $result = $conn->query($sql);
                if (@$result->num_rows == 0) {
                    $alldone = true;
                }
            } else {
                                    
                $errore = "nick già esistente";
                echo $errore;
            }
        }
        ?>



        <div align ="center">
            <form id = "input_form" action="?">
                <fieldset  style = "margin-top: 10%; width:50%">

                    <h4>Inserisci credenziali</h4><br/>
                    <span style = "padding-right: 5%">email:</span>   <input type ="email" id = "email" /><br/> 
                    <span style = "padding-right: 2%">Nickname:</span> <input type ="text" id = "nick"/><?php echo $errore ?><br/>
                    <span style = "padding-right: 2.5%">Password:</span> <input type ="password" id = "password"/><br/>

                    <button>invia</button><br />    

                    <div id="result"></div>

                </fieldset>
            </form>
        </div>

    </body>
</html>
Lord_Brisingr è offline   Rispondi citando il messaggio o parte di esso