• User

    Messaggio in finestra al posto di echo

    Salve a tutti. Ho creato questo script che in pratica andrebbe a scrivere nel database cliccando un tasto, ma solo a delle condizioni. Ora la mia domanda è questa:

    E' possibile far comparire il messaggio di condizione non valida (echo) senza far ricaricare la pagina magari con un messaggio in finestra tipo un alert?

    [PHP]

    <form name="form" method="post">
    

    <input type="submit" name="button1" value="Vota l'Asta" />
    </form>
    </body>

    <?php
    //dichiaro le variabili di connessione
    $db_host = "localhost";//$_POST["host"];
    $db_user = "root";//$_POST["user"];
    $db_password = "";//$_POST["password"];
    $db_name = "prova";//$_POST["db"];
    //mi connetto al server
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.php");
    //scelgo a quale database connettermi
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");

    if(isset($_POST['button1'])){

    $user->guest;
    $voti = "SELECT * FROM voti_utenti WHERE id_asta = '$id_asta' AND id_utente = '$user_id'";
    $dati = mysql_query($voti);
    $righe = mysql_num_rows($dati);

    if ($user->guest) {

    echo("Per votare devi effettuare l'accesso!");

    return;
    }

    elseif ($righe > 0 ) {
    echo("Hai gia' votato per quest'asta");
    return;
    }

    mysql_query ("INSERT INTO voti_utenti (id_asta, id_utente) VALUES ('$id_asta', '$user_id')");

    echo("Grazie per il tuo voto!");

    }

    ?> [/PHP]


  • Super User

    Ciao Wilcox,

    No, con PHP non puoi, hai bisogno di javascript (o AJAX se devi accertare una condizione nel database).

    Quando l'utente clicca "Vota l'Asta" il tuo browser fa una richiesta HTTP per quella stessa pagina in quanto non hai specificato "action" nel tuo modulo.

    PS
    mysql_ è deprecato ti conviene cominciare ad abituarti a mysqli_ , molte cose funzionano allo stesso modo.
    php.net/manual/en/book.mysqli.php