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] Remplacement Valeur Vs Concatenation


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Par défaut [AJAX] Remplacement Valeur Vs Concatenation
    Salut tout le monde
    je voudrais savoir comment fait-on pour remplacer des valeurs ajouter par exemple apres un click ?
    exemple :
    j ai un lien, lorsque je click sur ce dernier je fais un appel a ajax qui me fait apparaitre des valeurs dans un div mais lorsque je reclick de nouveau sur ce lien ou sur un autre lien les données se mettent a la suite

    ma question : comment faire pour effacer les donnees affiché au prealable pour ensuite ajouter les nouvelles ?

    ps : je me demande si l'erreur ne vient pas du fait que j'ai creer un tableau pour afficher les données ?

    ps 1 : je sais pas vraiement si c'est un probleme ajax ou js mais je savais pas ou poster

    Mon Code :
    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
     
    function recup_pizza(xhr,num_pizza)
    {
    	if(xhr.readyState == 4)
    	{
    		var reponse = xhr.responseXML;
    		var items = reponse.getElementsByTagName("pizza");				
    		var table = document.createElement("table");
     
    		// on parcourt toutes les balises
    		for(var i=0;i<items.length;i++)
    		{									
    			/* me donne le nom des pizza
    			alert(reponse.getElementsByTagName("pizza")[i].getElementsByTagName('nom')[0].firstChild.data);
    			*/
    			// si la pizza desiré est reperé
    			if(reponse.getElementsByTagName("pizza")[i].getElementsByTagName('id')[0].firstChild.nodeValue == num_pizza)
    			{
    				var tr = document.createElement('tr');	
    				for(j=0;j< reponse.getElementsByTagName("pizza")[i].getElementsByTagName('ingredient').length;j++)
    				{
    					td = document.createElement('td');
    					txt = document.createTextNode(reponse.getElementsByTagName("pizza")[i].getElementsByTagName('ingredient')[j].firstChild.data);
    					td.appendChild(txt);
    					tr.appendChild(td);				
    				}
    				table.appendChild(tr);				
    			}
     
    		}		
    		document.getElementById('ecran').appendChild(table);
     
    	}
     
    }

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    C'est un problème d'algorithme. Ici, à chaque appel de recup_pizza(), tu crées une table que tu remplis et que tu ajoutes à ton document. Si tu veux effacer les résultats précédents, tu peux par exemple (1) supprimer la table précédente avant d'en créer une nouvelle, ou encore (2) récupérer la table déjà créée et supprimer les lignes (<tr>) périmées avant de la remplir à nouveau.

    Tu peux aussi attribuer un id à la table pour la manipuler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function recup_pizza(xhr,num_pizza)
    {
      var mytbl = document.getElementById('mytbl');
      if( !!mytbl )  mytbl.parentNode.removeChild(window.mytbl);
    
      if(xhr.readyState == 4) 
      {
        var reponse = xhr.responseXML;
        var items = reponse.getElementsByTagName("pizza");			    var table = document.createElement("table");
        table.setAttribute('id', 'mytbl'); 
    [...]
    Si tu ne veux ou ne peux pas attribuer d'id valide, passe par un pointeur anonyme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function recup_pizza(xhr,num_pizza)
    {
      if( !!window.mytbl ) { 
      window.mytbl.parentNode.removeChild(window.mytbl);
      window.mytbl = null;
      }
      if(xhr.readyState == 4)
      {
        var reponse = xhr.responseXML;
        var items = reponse.getElementsByTagName("pizza");			    var table = document.createElement("table");
        window.mytbl = table; 
    [...]
    etc.

Discussions similaires

  1. [XSLT] remplacer valeur vide par espace
    Par Anubis dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/02/2008, 09h46
  2. {VBA Excel}programme pour remplacer valeurs
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/08/2007, 00h54
  3. Réponses: 2
    Dernier message: 13/06/2007, 15h40
  4. [AJAX] Récupérer valeurs formulaires
    Par Mister Nono dans le forum Struts 1
    Réponses: 5
    Dernier message: 19/04/2007, 17h23
  5. Réponses: 2
    Dernier message: 20/08/2006, 14h19

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