Bonjour,
Je rencontre un soucis pour éxecuter une fonction dans la réponse du XMLHttpRequest.
Je poste le code :
//Fonction de départ :
//Fonction de la requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function create_file_two_fct() { write_ajax("value=1&","write_xml_orders.php"); //create_xml_file("UKTEL_20100114_3.xml"); }
//Fonction de la réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function write_ajax(qs,url) { alert(qs); request = new XMLHttpRequest(); request.onreadystatechange = create_xml_file_back; request.open('POST', url, true); request.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"); request.send(qs); }
create_xml_file est une fonction permettant de mettre en forme la variable envoyée avec la requete. create_xml_file appel write_ajax(qs,url)
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 function create_xml_file_back() { if (request.readyState == 4) { if (request.status == 200) { var reponse = request.responseText; var func = new Function("return" + reponse); var obj = func(); var name=obj.nom; document.getElementById('filename').setAttribute("value",name); create_xml_file(name); } else { } } }
//Code de la fonction PHP appelée.
Aprés tout ce code. voici mon probleme:
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 session_start(); $dom = new DomDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $id_file=0; $date_file="UKTEL_" . date("Ymd") . "_"; $name=""; if(isset($_POST['value']) and $_POST['value']==1) { do { $id_file++; $name=$date_file . $id_file . ".xml"; } while(file_exists($name)); $fichier_commandes = $dom->createElement("fichier_commandes"); $fichier_commandes = $dom->appendChild($fichier_commandes); $entete = $dom->createElement("entete"); $entete->setAttribute("code_client", "1362"); $date=date("m/d/Y"); $entete->setAttribute("date_fichier", $date); $entete->setAttribute("version", "3.7"); $entete=$fichier_commandes->appendChild($entete); $_POST['filename']=$name; } else { $dom->load($_POST['filename']); $commande = $dom->createElement("commande"); $fichier_commandes = $dom->getElementsByTagName("fichier_commandes"); $commande=$fichier_commandes->item(0)->appendChild($commande); } $dom->save($_POST['filename']); printf("{name:" . $_POST['filename'] . "}"); ?>
Premiere partie : je crée un nouveau fichier xml et je renvois le nom dans mon code AJAX.
Deuxième partie : je rempli le fichier xml avec les données d'un tableau.
Chaque ligne du tableau correspond à une requete XMLHttpRequest.
Je n'arrive pas a faire les deux parties à la suite mais j'arrive à boucler sur la 2ème partie.
Pourtant j'utilise le meme code et le meme système pour les deux parties.
Peut être que je ne suis pas trés rigoureux dans le code mais impossible de récupérer le nom du fichier et de l'envoyer à la fonction create_xml_file() pour la première partie. (et pourtant ca fonctionne trés bien pour la 2ème partie).
Si vous ne voyez pas de réponse. Comment puis je stocker le nom du fichier renvoyé quelque part ? car meme l'écriture dans une balise en dur ne fonctionne pas. (document.getElementById('filename').setAttribute("value",name))
Je vous remercie d'avance pour vos futures réponses.
Cordialement
Julien
Partager