[PHP] Incrementare variabile al click di un pulsante

Occhioverde

Nuovo Utente
11 Lug 2017
2
0
1
21
Ciao a tutti.
Ho un piccolo problema: Devo fare in modo che, al click di un pulsante, il valore di una variabile aumenti di 1, venga visualizzato dall'utente e memorizzato sul database, e questo SENZA far ricaricare la pagina.
Ho letto diverse discussioni, ma in tutte ho visto che la pagina veniva ricaricata. Esiste un modo per evitare ciò?
Grazie in anticipo per l'aiuto.
 
Si esatto, ti fai la chimata ad una funzione che vi ajax richiami un file php ad ogni click. Questo file php fa una semplice query (fondamentalmente) che ti fa l'update del click
 
Ciao una cosa del genere

pagina.php
PHP:
<?php
    include ('config.php');
    $query = mysqli_query($conn, "SELECT * FROM voti") or die (mysqli_error($conn));
    $result = mysqli_fetch_row($query);
    $nrvoti = $result[0];
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Aggiungi Voto</title>
    </head>
    <body>
        <center>
            <button onclick="incrementaVoto()">Incrementa Voto</button>
            <br><br>
            <input type="text" id="number" value="<?php echo $nrvoti; ?>"/>
            <div id="aggiornato"></div>
        </center>
       
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script>
    function incrementaVoto(){
        var value = document.getElementById('number').value;
        value++;
        document.getElementById('number').value = value;
       
        $.ajax({
            type: "POST",
            url: "query.php",
            data: "tipo=addvoto",
            dataType: "html",
            success: function(msg){
                $("#aggiornato").html(msg);
            },
            error: function(){
                alert("Chiamata fallita, si prega di riprovare...");
            }
        });
   
    }
    </script>
    </body>
</html>

pagina2.php - va ad eseguire la query e se vuoi con echo restituisci un risultato.
PHP:
<?php
include ('config.php');
extract($_POST);
$tipo = $_POST['tipo'];

if($tipo == 'addvoto'){
  
    mysqli_query($conn, "UPDATE voti SET voti=voti+1") or die (mysqli_error($conn));
    $result = mysqli_query($conn, "SELECT * FROM voti") or die (mysqli_error($conn));
    echo "UPDATE";
}
else{
    //echo "Niente";
}
?>

richiama il tuo file di connessione al DB e adatta le query.

P.S.: Ovviamente questa è una base ci sono altri modi e eventuali controlli da fare!!
 

Discussioni simili