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 :

rechargement DIV avec Javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Par défaut rechargement DIV avec Javascript
    Bonjour,

    j'utilise une page web avec un javascript pour afficher un fichier XML via XSL
    ce JS est appelé au chargement de la page avec la directive
    <body onload="....">

    ci dessous mes javascripts:


    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
        function loadXMLDoc(dname) 
        { 
          if (window.XMLHttpRequest) 
          { 
            xhttp=new XMLHttpRequest(); 
          } 
          else 
          { 
            xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
          } 
          xhttp.open("GET",dname,false); 
          xhttp.send(""); 
          return xhttp.responseXML; 
        } 
     
        function displayResult(sigle,valeur) 
        {
          document.getElementById("content").innerHTML='';
          xmlfile="test.xml"; 
          xslfile="srfil.xsl"; 
          xml=loadXMLDoc(xmlfile); 
          xsl=loadXMLDoc(xslfile); 
     
          // code for Mozilla, Firefox, Opera, etc. 
          if (document.implementation && document.implementation.createDocument) 
          { 
            xsltProcessor=new XSLTProcessor(); 
            xsltProcessor.importStylesheet(xsl); 
     
            if ( sigle != "" && valeur != "") 
            { 
                xsltProcessor.setParameter(null, "filtresigle", sigle); 
                xsltProcessor.setParameter(null, "filtrevalue", valeur); 
                xsltProcessor.setParameter(null, "gofiltre", 1); 
            } 
            else 
            { 
                xsltProcessor.setParameter(null, "gofiltre", 0); 
            } 
     
            resultDocument = xsltProcessor.transformToFragment(xml,document); 
            document.getElementById("content").appendChild(resultDocument); 
          } 
        } 
     
        function valider() 
        { 
          // si la valeur des champ est non vide 
          if(document.filtre.sigle.value != "" && document.filtre.valeur.value != "") 
          { 
            // les données sont ok, on peut envoyer le formulaire 
            displayResult(document.filtre.sigle.value,document.filtre.valeur.value); 
          } 
          else 
          { 
            // sinon on affiche un message 
            alert("Saisissez les données"); 
            // et on indique de ne pas envoyer le formulaire 
            return false; 
          } 
        }
    et le code HTML


    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
    <body onload="displayResult()"> 
      <div id="header"> 
        <h1>Décodage SRFIL</h1> 
        <h2>Test.log</h2> 
      </div> 
      <div id="filtre"> 
        <h3>Filtre</h3> 
     
        <form name="filtre" action="" onsubmit="return valider()" method="get"> 
          <p> 
            <label for="sigle">Sigle :</label> 
            <input type="text" name="sigle" value="" /> 
            <label for="valeur">Valeur :</label> 
            <input type="text" name="valeur" value="" /> 
            <input type="submit" value="Ok" /> 
          </p> 
        </form> 
     
      </div> 
      <div id="content" /> 
    </body>
    Au chargement initial de la page, le fichier XML est correctement affiché via l'appel au script "DisplayResult".
    On n'y passe pas de paramètres (ceux-ci servent à ajouter des filtres pour l'affichages des données XML)

    Le formulaire sert pour l'utilisateur pour qu'il puisse filtrer l'affichage des données XML.

    les valeurs sont correctement récupérée par le script "valider".

    Dès validation du formulaire, le filtrage se passe bien (j'ai un rafraichissement de la div "content" avec les données filtrées.

    par contre quelques instant plus tard, j'ai un refresh complet de la page, sans les données de filtrage...

    j'ai essayé de retirer la directive "onload" dans la balise <body>, mais cela ne change rien...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Par défaut
    Trouvé!!!


    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
        function valider() 
        { 
          // si la valeur des champ est non vide 
          if(document.filtre.sigle.value != "" && document.filtre.valeur.value != "") 
          { 
            // les données sont ok, on peut envoyer le formulaire 
            displayResult(document.filtre.sigle.value,document.filtre.valeur.value);
            return false;
          } 
          else 
          { 
            // sinon on affiche un message 
            alert("Saisissez les données"); 
            // et on indique de ne pas envoyer le formulaire 
            return false; 
          } 
        }
    il fallait juste ajouter un return false après le displayResult...

  3. #3
    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
    Ah ok... donc [Encodage], pour toi, c'est "écrire du code" ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Par défaut
    Non, mais il y avait une liste déroulante.... j'ai choisi un truc...;-p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une marge d'un div avec JavaScript en %
    Par Adrien88390 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2014, 12h01
  2. Afficher une bannière dans une div avec javascript
    Par houssem86 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/10/2013, 08h26
  3. Affichage d'une div avec une fonction Javascript
    Par maxime-mb dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/01/2012, 11h09
  4. Ecrire un div avec style en Javascript
    Par staive dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/10/2007, 17h53
  5. Generation de div avec code javascript
    Par partyboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/03/2006, 10h19

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