Salve a tutti,
ho un pulsante che all'evento click di jquery effettua una richiesta ajax ed incrementa di 1 il valore nel database.
Il mio problema e che se clicco ripetutamente il pulsante mi esegue più volte la richiesta come potrei fare?
Salve a tutti,
ho un pulsante che all'evento click di jquery effettua una richiesta ajax ed incrementa di 1 il valore nel database.
Il mio problema e che se clicco ripetutamente il pulsante mi esegue più volte la richiesta come potrei fare?
La miglior cosa è fare un controllo lato server controllando il valore nel campo del db, cosi che tutte le richieste siano moderate o bloccate eventualmenteOriginariamente inviato da slyover3
Salve a tutti,
ho un pulsante che all'evento click di jquery effettua una richiesta ajax ed incrementa di 1 il valore nel database.
Il mio problema e che se clicco ripetutamente il pulsante mi esegue più volte la richiesta come potrei fare?
ma in che modo? io ho provato a fare in questo modo:
questo è il file che viene richiamo dalla richiesta ajax ma così non va... se clicco ripetutamente mi inserisce sempre tanti record...codice:$select = mysql_query("SELECT * FROM votazione WHERE ID_UTENTE ='$id'"); $num_ro = mysql_num_rows($select); if ($num_ro == 0){ echo "<p style='color:black'>VOTATO</p>"; mysql_query("UPDATE profili SET VOTI = VOTI +1 WHERE ID='$id_locale'"); }
Immagino che tu faccia anche un insert prima dell'update, perché sennò aggiorni e controlli 2 tabelle differenti, comunque prova impostando async su false nella chiamataOriginariamente inviato da slyover3
ma in che modo? io ho provato a fare in questo modo:
questo è il file che viene richiamo dalla richiesta ajax ma così non va... se clicco ripetutamente mi inserisce sempre tanti record...codice:$select = mysql_query("SELECT * FROM votazione WHERE ID_UTENTE ='$id'"); $num_ro = mysql_num_rows($select); if ($num_ro == 0){ echo "<p style='color:black'>VOTATO</p>"; mysql_query("UPDATE profili SET VOTI = VOTI +1 WHERE ID='$id_locale'"); }
Questo è il codice completo
Richiesta ajax:
Codice php:codice:$('.vote').click(function(){ var id = $("#id").val(); var id_locale = $("#id_locale").val(); $.ajax({ type: "POST", url: "../ajax/vota.php", data: "id=" + id + "&id_locale=" + id_locale, dataType: "html", success: function(msg){ $("#risposta").html(msg); return false; }, error: function(){ alert("Chiamata fallita!!!"); } }); });
Codice PHP:
<?php
include 'config.php';
$id = mysql_real_escape_string($_POST['id']);
$id_locale = mysql_real_escape_string($_POST['id_locale']);
$swl = mysql_query("INSERT INTO votazione (ID_UTENTE,ID_LOCALE) VALUES ('{$id}',
'{$id_locale}')");
if ($swl) {
$select = mysql_query("SELECT * FROM votazione WHERE ID_UTENTE ='$id'");
$num_ro = mysql_num_rows($select);
if ($num_ro == 0){
echo "<p style='color:black'>VOTATO</p>";
mysql_query("UPDATE profili SET VOTI = VOTI +1 WHERE ID='$id_locale'");
}
}
?>
funziona! mettendo async: false grandissimo!![]()
Attenzione, le richieste sincrone ajax possono essere molto "pericolose" nel caso che il server sia bloccato o down crash anche il browser si blocca verifica su jquery la prassi per far uscire la chiamata dopo x tempo senza risposte dal serverOriginariamente inviato da slyover3
funziona! mettendo async: false grandissimo!![]()
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Grazie andrea gentilissimo, potresti per caso indicizzarmi ad un link con quello che mi hai detto![]()
![]()
Ma non potevi disabilitare i bottoni fino a che la chiamata Ajax terminava ?
Non saprei vedi le api jquery proprio per questi motivi non ho mai usato chiamate sincroneOriginariamente inviato da slyover3
Grazie andrea gentilissimo, potresti per caso indicizzarmi ad un link con quello che mi hai detto![]()
![]()
Ritengo sia un valido consiglio alternativaOriginariamente inviato da cassano
Ma non potevi disabilitare i bottoni fino a che la chiamata Ajax terminava ?![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui