IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] XMLHttpRequest Fonction


Sujet :

AJAX

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut [AJAX] XMLHttpRequest Fonction
    Bonjour,

    Je rencontre un soucis pour éxecuter une fonction dans la réponse du XMLHttpRequest.

    Je poste le code :

    //Fonction de départ :
    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 requete
    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);	
    			}
    //Fonction de la réponse
    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 
    					{
     
    					}
    				}
    			}
    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 de la fonction PHP appelée.
    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'] . "}");
     
    ?>
    Aprés tout ce code. voici mon probleme:

    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

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Quelques observations en vrac :

    - évite d'utiliser "name" comme variable, je crois que c'est réservé.

    - est-ce bien "value=1&" que tu veux envoyer lors de ton send ? (que fait ce "&" ici s'il n'y a qu'un seul param ? )

    - "var func = new Function("return" + reponse);" >>> la réponse va-t-elle commencer par un espace ? (si non >>> )

    - test "request.status == 200" on a coutume d'autoriser également la possibilité "status == 0" car il peut arriver que ce code soit renvoyé lors d'une requête pourtant réussie.

    - es-tu sûr du type MIME demandé pour ta réponse (application/x-www-form-urlencoded) ?

    - je trouve assez dangereux de passer par un objet de transport global (déclaré sans "var"), mais ce n'est qu'une pratique dangereuse, pas une erreur ^^

Discussions similaires

  1. [AJAX] xmlhttpRequest remplir un champ input en fonction du select
    Par briviere dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 06/03/2009, 21h37
  2. [ajax] XMLHttpRequest et formulaire(<input type='file'>)
    Par Are-no dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 20h22
  3. [AJAX] XMLHTTPREQUEST ne se met pas à jour :-/
    Par franckarts dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/08/2006, 18h11
  4. [AJAX] XMLHttpRequest en parallèle
    Par narkhor dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/07/2006, 09h57
  5. [AJAX] Ma fonction ne se termine pas...
    Par Davboc dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 08/03/2006, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo