Modification dynamique d'une page par javascript

Résolu
VBFRANCE
Messages postés
22
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
25 juin 2008
- 8 janv. 2007 à 13:55
VBFRANCE
Messages postés
22
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
25 juin 2008
- 8 janv. 2007 à 15:13
bonjour,

J'ai un petit soucis don je n'arrive pas a trouver la solution
Voici un exemple qui fonctionne:

<SELECT id="option01" onchange="javascript:change_option01();">
 <OPTION value="v01" >valeur 1</OPTION>
 <OPTION value="v02" >valeur 2</OPTION>
 ........
 <OPTION value="v99" >valeur 99</OPTION>
</SELECT>

.......

<SCRIPT language=javascript type=text/javascript>
 <!--
 function change_option01()()
  {
   document.getElementById("option_02").innerHTML ="<SELECT id='option01'><OPTION value='v01' >valeur 1</OPTION><OPTION value='v02' >valeur 2.......</OPTION></SELECT>";
  }
 -->
</SCRIPT>

mais j'aimerais pouvoir modifier le code par l'ajout d'autre fichier , un peut comme cela:

<SELECT id="option01" onchange="javascript:change_option01();">
 <OPTION value="v01" >valeur 1</OPTION>
 <OPTION value="v02" >valeur 2</OPTION>
 ........
 <OPTION value="v99" >valeur 99</OPTION>
</SELECT>

.......

<SCRIPT language=javascript type=text/javascript>
 <!--
 function change_option01()()
  {
   document.getElementById("option_02").src =document.getElementById("type")(document.getElementById("type").selectedIndex).value+"html";
  }
 -->
</SCRIPT>

je ne peux malheureusement pas passer par du php
et tout coder dans la page ferais bcp trop de code sur une seule page
Quelqu'un aurait-il une idée ?

Merci d'avance.

 Thierry

2 réponses

Zobibol
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
6
8 janv. 2007 à 14:15
Bien le bonjour.
Pour ce qui est de remplir une div, tu ne peux pas utiliser src="..."
le plus simple serait de passer par AJAX et de remplir ta div avec le retour de la requête.

Un truc du genre :

/**
* Ajax request
*/
function HTTPRequest() // Function pour créer l'objet xmlhttprequest //
{
    var xmlhttp=false;
    try
    {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
        try
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
            xmlhttp = false;
        }
    }
    
    if (!xmlhttp && typeof XMLHttpRequest != "undefined")
    {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}            

/**
* Envois de la requête et récupération.
*/
function loadFromUrl(){
        var request = HTTPRequest();
        request.open("POST", document.getElementById("type")(document.getElementById("type").selectedIndex).value+".html", true);
        request.onreadystatechange = function() {  
            if(request.readyState == 4) {  
                var tmp = request.responseText;  
                document.getElementById("option_02").innerHTML = tmp;
            }
        }
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
        request.send(null);
}

et sur le onchange de ton select :
onchange=" loadFromUrl()"

ça doit fonctionner

[o-_-o]
3
VBFRANCE
Messages postés
22
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
25 juin 2008

8 janv. 2007 à 15:13
Merci bien pour cette info.

Je ne connaissais par du tout AJAX( ormis le produit nettoyant  , mais c'est pas le meme registre), même pas de non
Je vais essayer de trouver plus d'info sur celui-ci

 Thierry
0