Visualizzazione dei risultati da 1 a 4 su 4

Discussione: variabile non definita

  1. #1

    variabile non definita

    Buongiorno a tutti,
    ho un problema un po strano.. cioè.. a seconda del punto nel codice in cui voglio stampare la variabile, quest'ultima prende il giusto valore o il valore di "undefined" e non capisco il perché
    ho questo codice:
    codice:
    if(user_exist) {
        //result = function....
    } else {
        $.ajax({
          type: "POST",
          url: "scanned.php",
          data: {data:html},
          success: function(msg)
          {
            if(msg.length > 0)
            {
                result = JSON.parse(msg);
                //console.log(result) //<=QUI
            }
          },
          error: function(msg)
          {
            var audio = new Audio('sounds/beep_er.mp3');
            audio.play();
          }
        });
    }
    
    
    console.log(result);
    nell'ultimo "console.log" mi da come output: "undefined" mentre se metto l'output subito dopo l'assegnazione mi da il giusto output ç_ç
    idee?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che le variabili è sempre meglio dichiararle anteponendo (var) nomevariabile prova così, se non dovesse funzionare rendila globale dichiarandola fuori dalla funzione
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Sei sicuro che passi sempre nell'if (msg.length > 0) ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    @cavicchiandrea result non l'ho usata da nessuna parte e ho già provato a scrivere var result all'inizio della funzione sopra tutto
    @badaze se non passa da lì passa sopra (che non l'ho scritto ma pensavo si capisse dalla riga commentata "result = function").

    Mi è venuto in mente ora... in teoria la chiamata ajax è in "background" quindi l'esecuzione del codice va avanti.. ecco perché arriva vuoto result alla funzione "console.log".. Dovrei provare a mettere async false alla chiamata giusto?

    EDIT: o meglio non usare async false dato che è deprecato ma inserire una funzione alla fine della chiamata... infatti ora funziona
    Ultima modifica di AlexDev; 12-03-2015 a 19:56

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.