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

JavaScript Discussion :

[AJAX] Combinaison de AJAX et DOM


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Laughing Man
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut [AJAX] Combinaison de AJAX et DOM
    Bonjour à tous.

    Je développe actuellement une interface en php, et j'ai un "soucis" avec une de mes pages.
    Dans cette page, j'ai un formulaire (qui marche).
    Ce que je voudrais faire, c'est dupliquer ce formulaire dans ma page, c'est à dire rajouter une nouvelle division contenant la même chose.
    Le but, c'est de tout faire sur la même page, plutôt que devoir y passer deux fois.

    Tout ça, j'arrive à le faire avec DOM sans problème. Mais je voulais savoir s'il y avait une solution pour le faire en AJAX+DOM ou AJAX tout seul.
    J'ai fait pas mal de recherche et testé plusieurs choses, mais actuellement ça ne fonctionne pas.

    Voilà mes scripts :
    ajax.js
    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
     
    function ajout_seminaire(cpt){
    	var compteur = cpt + 1;
     
    	/* Récupération de l'élément concerné par l'ajout de ligne */
    	liste_seminaire = document.getElementById("seminaire");
     
    	/* Création d'un ligne de séparation */
    	element = document.createElement('div');
    	element.setAttribute('style','border-top: 1px solid blue; margin-top: 10px; margin-bottom: 10px');
    	element.setAttribute('id','test');
    	ligne = liste_seminaire.appendChild(element);
     
    	var hxr = getXhr();
    	xhr.onreadystatechange = function(){
    			if((xhr.readyState == 4 )&& (xhr.status == 200)){
    				element = xhr.responseText;
    				document.getElementById('test').innerHTML = element;
    			}
    		}
     
    		xhr.open("POST","Actions/ajax.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }
    Dans ma page source php, j'ai un onclick pour appeler cette fonction, et dans ajax.php, j'ai juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo('<div>test</div>');
    ?>
    La partie DOM marche bien, mais pas l'AJAX.
    J'ai du zapper un truc important, ou alors j'ai pas bien saisi comment çà fonctionne.
    Si quelqu'un a une idée....

  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
    >>> php : c'est bizarre ces parenthèses après echo... non ? ^^

    >>> javascript : juste un détail : méfie-toi quand même des variables non déclarées avec var : elles sont implicitement globales et il arrive que ça pose des problèmes... même si ce n'est vraisemblablement pas le cas ici.

    >>> pour le problème rencontré : qu'est-ce qui "ne marche pas" ? (description, résultat, message d'erreur, quelque chose...)

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Par défaut
    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
    function ajout_seminaire(cpt){
    	var compteur = cpt + 1;
     
    	/* Récupération de l'élément concerné par l'ajout de ligne */
    	var liste_seminaire = document.getElementById("seminaire");
     
    	/* Création d'un ligne de séparation */
    	var element = document.createElement('div');
    	element.setAttribute('style','border-top: 1px solid blue; margin-top: 10px; margin-bottom: 10px');
    	element.setAttribute('id','test');
    	ligne = liste_seminaire.appendChild(element);
     
    	var hxr = getXhr();
    	xhr.onreadystatechange = function(){
    			if((xhr.readyState == 4 )&& (xhr.status == 200)){
    				element.innerHTML = xhr.responseText;
    			}
    		}
     
    		xhr.open("POST","Actions/ajax.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }
    J'ai épure un petit peu ton code...

    Oui dis nous ce qui ne marche pas ?

  4. #4
    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
    heu... on a laissé passer un truc énorme ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var hxr = getXhr();// suivi de l'utilisation d'un objet xhr inexistant...

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    heu... on a laissé passer un truc énorme ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var hxr = getXhr();// suivi de l'utilisation d'un objet xhr inexistant...
    C'est un peu comme le nez en plein milieu de la figure

Discussions similaires

  1. Ajax request javascript inactif quand dom rafraîchi
    Par psgman113 dans le forum jQuery
    Réponses: 4
    Dernier message: 04/09/2009, 15h11
  2. [AJAX] Réponse ajax type responseXML et traitement DOM
    Par n1n0x dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/05/2008, 14h11
  3. [DOM] Deuxieme liste déroulante liée via ajax, encore inclure ajax?
    Par clara1 dans le forum Général JavaScript
    Réponses: 48
    Dernier message: 16/05/2008, 15h06
  4. [Prototype] [DOM] ajax.updater() ou ajax.request()
    Par wincroc dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 13/06/2007, 11h26
  5. [AJAX] Autocomplétion + méthode Ajax
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/10/2005, 16h24

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