[Javascript] Problema parametro passato con ajax

Discussione in 'Javascript' iniziata da GGG, 24 Marzo 2018.

  1. GGG

    GGG Nuovo Utente

    Registrato:
    31 Agosto 2016
    Messaggi:
    33
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Salve a tutti,
    Ho un problema che si verifica quando effettuo una chiamata con ajax.
    Questa chiamata si trova dentro un onclick dentro un ciclo while e passa un solo parametro (id) in POST, solo che questo parametro è sempre diverso e dato che viene eseguita al click di un bottone, passa sempre l'ultimo id del ciclo.
    Non so se mi sono spiegato bene ma spero che qualcuno possa darmi una mano
    PS: Ho provato anche con eval ma c'è sempre lo stesso problema
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    è difficile dare un suggerimento senza vedere il codice, perché mi sembra una situazione non convenzionale,
    asserisci che onclick é all'interno di un ciclo while,
    ebbene non capisco come si possa "innescare" il ciclo while se la sua "attivazione" avviene da istruzioni interne ad esso
    forse non ho capito nulla o forse devi rivedere la logica delle operazioni
    attivando con l'onclick il ciclo while,
    che raccoglie i parametri
    ed al termine le passa alla funzione Ajax,
    che a sua volta pubblica i risultati ricevuti
     
  3. GGG

    GGG Nuovo Utente

    Registrato:
    31 Agosto 2016
    Messaggi:
    33
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Non mi sono saputo spiegare,
    ho un ciclo while con dentro questo onclick con dentro questa chiamata ajax, che passa solo un parametro: id, che sarebbe l'indice del ciclo. Dato che è un ciclo e che l'onclick si verifica dopo il caricamento della pagina, la chiamata passa solo l'ultimo indice.
    Esempio:
    HTML:
    <script>
    var n = 0;
    var tot = 25; //un esempio
    while(n < tot){
        $("#button"+n).one("click", function(){
            $.ajax({
                url: "URL",
                type: "POST",
                data: {id: n},
                success: function(){
                    //FUNZIONE
                }
            });
        });
        n++;
    }
    </script>
    In questo caso passerà sempre 25 perchè è l'ultimo indice
    Spero di essermi spiegato bene
     
  4. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    while crea gli eventi "click" associando il codice, non i valori delle variabili che vengono presi al momento dell'uso
    per questa ragione n, rimane fissato al valore massimo raggiunto
    l'unico suggerimento che ho in questo momento consiste nel ricavare l'indice dal nome del bottone "#button"+n
    prima di richiamare la funzione Ajax
    HTML:
        $("#button"+n).one("click", function(){
    // qui estrai l'indice dal nome del bottone
            $.ajax({
    
     
  5. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    giusto per evidenza
    upload_2018-3-26_21-36-20.png
     
Sto caricando...

Condividi questa Pagina