J'ai une variable globale appelée calculated_price
, qui contient le prix d'un produit sélectionné. Je change la valeur de cette variable globale avec une fonction, puis avec une autre fonction que je soumets à un serveur avec une demande de poste AJAX:Javascript ne peut pas accéder à la variable globale
var calculated_price;
function calculatePrice() {
calculated_price = $$('.myInput').val();
$$('.price-holder').text(calculated_price);
}
function submitOrder(calculated_price) {
if(calculated_price !== null || calculated_price !== '') {
$$.post('http://www.example.com/payment.php', { price: calculated_price},
function(data) {
alert('Data: ' + data);
});
}
}
J'utilise Framework7, de sorte que le cadre JS J'utilise est DOM7 , mais c'est très similaire à jQuery et la fonction $$. post que j'utilise a toujours fonctionné jusqu'ici. Il ne semble pas pouvoir accéder au calculated_price variable
. Je n'ai pas redéclaré cette variable n'importe où dans mon code (nulle part j'ai mis var
devant elle sauf quand elle est déclarée globalement). Une idée de pourquoi cette variable est perdue jusqu'à ce que la dernière fonction soit exécutée (submitOrder)? Je sais que la variable existe et a de la valeur, car dans la fonction calculatePrice
, j'ai mis le prix calculé dans un élément HTML et il affiche le prix correctement.
Que voulez-vous dire par ne peut pas accéder? Vous obtenez une erreur? Quelle ligne jette l'erreur? Etc. – Utkanos
Vous avez un problème avec 'if (calculation_price! == null || calculate_price! == '')': cela devrait être 'if (calculation_price! == null && calculate_price! == '')' –
@Utkanos Il n'y a pas d'erreur, sinon je l'avais déjà réparé. Cela ne renvoie rien. J'alerte le calculate_price dans la fonction submitOrder et il est complètement vide. Aucune erreur ou quoi que ce soit. –