/ / Utilisation de variables javascript n'importe où - javascript, jquery, ajax

Utilisation de variables javascript n'importe où - javascript, jquery, ajax

Voici ma fonction jQuery,

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar("negative","There was an error sending the message");
}
var username = data;
})

Mais je n'utilise que la variable "data" ou "username" dans la fonction elle-même, alors comment puis-je l'utiliser globalement sur toute la page?

Réponses:

5 pour la réponse № 1

Définissez la variable dans la portée globale, en dehors de votre fonction.

var username, data;

$.post("assets/scripts . . .


2 pour la réponse № 2

Non plus

window.data = data

ou

username = data

La chose est cependant, le $.post est asynchrone, donc vous ne pourrez pas faire quelque chose comme ...

$.post( ... )
alert(window.data);

1 pour la réponse № 3

Essayer

var globalData;
var username;

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar("negative","There was an error sending the message");
}
globalData = data
username = data;
})

1 pour la réponse № 4

Ce que tu peux faire c'est

  var myglobaldata = {};

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar("negative","There was an error sending the message");
}
myglobaldata.username = data;
})

Maintenant vous pouvez accéder myglobaldata.username de partout.


0 pour la réponse № 5

Vous pouvez l'enregistrer en tant que données en utilisant .Les données():

$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar("negative","There was an error sending the message");
} else {
$(document).data("userInfo", data);
}
});

Ensuite, vous pouvez y accéder en faisant:

var userInfo = $(document).data("userInfo");

0 pour la réponse № 6
window.username = data

En fera une variable globale. Bien que cela soit souvent considéré comme une mauvaise pratique.


0 pour la réponse № 7

Je suppose que votre jQuery est enveloppé dans $(document).ready(); - essayez de déclarer les vars à l'extérieur comme ceci, ce qui les rendra globaux tout au long de la page:

var username, data;

$(document).ready(function() {
$.post("assets/scripts/chat/get_user_info.php", {UserID: UserID}, function(data){
if (data == "error") {
alertBar("negative","There was an error sending the message");
}
username = data;
})
});

0 pour la réponse № 8

Essayer document.username au lieu de username

document l'objet est visible de partout