Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Anti click ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134

    Anti click ajax

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453

    Re: Anti click ajax

    Originariamente 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?
    La miglior cosa è fare un controllo lato server controllando il valore nel campo del db, cosi che tutte le richieste siano moderate o bloccate eventualmente

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    ma in che modo? io ho provato a fare in questo modo:

    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 file che viene richiamo dalla richiesta ajax ma così non va... se clicco ripetutamente mi inserisce sempre tanti record...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da slyover3
    ma in che modo? io ho provato a fare in questo modo:

    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 file che viene richiamo dalla richiesta ajax ma così non va... se clicco ripetutamente mi inserisce sempre tanti record...
    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 chiamata

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Questo è il codice completo

    Richiesta ajax:

    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:

    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'");
    }
    }
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    funziona! mettendo async: false grandissimo!

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da slyover3
    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 server
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Grazie andrea gentilissimo, potresti per caso indicizzarmi ad un link con quello che mi hai detto

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Ma non potevi disabilitare i bottoni fino a che la chiamata Ajax terminava ?

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da slyover3
    Grazie andrea gentilissimo, potresti per caso indicizzarmi ad un link con quello che mi hai detto
    Non saprei vedi le api jquery proprio per questi motivi non ho mai usato chiamate sincrone
    Originariamente inviato da cassano
    Ma non potevi disabilitare i bottoni fino a che la chiamata Ajax terminava ?
    Ritengo sia un valido consiglio alternativa
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.