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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<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;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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