Bonjour,
mon manque d'expérience en Javascript me confronte à un problème de compréhension dans mon code. En effet, après m'être arraché les cheveux pendant des heures, je viens vous demander conseil quant à mon développement Javascript, Jquery, Ajax...
Mon but est d'envoyer par l'intermédiaire d'une url, des données codée en JSON. Ce principe est fonctionnel dans mon code mais je n'arrive pas à passer une variable en dehors de certaines fonctions...
Voici le code HTML :
<input type="submit" url='<?php echo JRoute::_("lien.php?task=addJS&format=json"); ?>' name="bouton">
Ensuite, l'envoi des options en jquery avec une partie AJAX qui permet de récupérer d'autres données depuis un fichier PHP externe;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
//Création de la variable globale
var myCookies;
//Function permettant de traiter la réponse XMLHttpRequest
function GetCookies(reponse) {
/* ****JSON***** */
var data = eval( "(" + reponse + ")"); //Réception du modèle JSON depuis le controlleur
mycookies = '';
//Création d'une boucle pour récupérer les options
for(var key in data) {
option=data[key];
mycookies += option+' : '+$.cookie(option)+' \n\n';
}
}
//Récupération des noms de chaque cookie depuis fichiers.php
function GetTitle() {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
GetCookies(xhr.responseText);
}
};
xhr.open("GET","fichier.php",true);
xhr.send(null);
}
//Opération à effectuer lors du click du bouton Envoyer pour ajouter les options à l'url
$("[name=bouton]").click(function(e){
GetTitle();
e.preventDefault();
var url = $(this).attr('url');
$.ajax({
type:"POST",
url: url,
async:false,
data: {'customPlugin[221][textinput][comment]':'\n\n'+mycookies,
'customPrice[0][8]':221},
success: function(html){
alert('OK');}
});
location.reload();
}); |
Ma question est donc la suivante : pourquoi je ne peux pas utiliser ma variable globale myCookies pour passer les informations à la dernière partie soit la ligne 53?
S'il n'est pas possible de le faire ainsi, auriez-vous une autre solution? Peut-être en changeant la présentation de mes fonctions?
Merci d'avance de votre aide
Partager