je veux faire appel à plusieurs fonctions lors du chargement de ma page.
Seulement il n'y a qu'une seule fonction qui est chargée.
sur ma page prinpale, j'ai ce code :
Code : Tout sélectionner
<script type="text/javascript" src="js/recherche.js" charset="iso_8859-1"></script>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%" onload="startAll();" >
Puis dans mon formulaire,
<tr>
<td><select name="servergrouplist" id="servergrouplist">
<option value="--">- - - Choisissez un groupe de serveurs - - -</option>
</select>
</td>
</tr>
<tr>
<td><select name="servicegrouplist" id="servicegrouplist">
<option value="--">- - - Choisissez un groupe de services - - -</option>
</select>
</td>
</tr>
Code : Tout sélectionner
function startAll()
{
getServerList();
getServerGroupList();
getServiceGroupList();
}
/**
* Lister les départements d'une région avec un objet
* XMLHTTPRequest.
*/
/* Création de la variable globale qui contiendra l'objet XHR */
var requete = null;
/**
* Fonction privée qui va créer un objet XHR.
* Cette fonction initialisera la valeur dans la variable globale définie
* ci-dessus.
*/
function creerRequete()
{
try
{
/* On tente de créer un objet XmlHTTPRequest */
requete = new XMLHttpRequest();
}
catch (microsoft)
{
/* Microsoft utilisant une autre technique, on essays de créer un objet ActiveX */
try
{
requete = new ActiveXObject('Msxml2.XMLHTTP');
}
catch(autremicrosoft)
{
/* La première méthode a échoué, on en teste une seconde */
try
{
requete = new ActiveXObject('Microsoft.XMLHTTP');
}
catch(echec)
{
/* À ce stade, aucune méthode ne fonctionne... mettez donc votre navigateur à jour ;) */
requete = null;
}
}
}
if(requete == null)
{
alert('Impossible de créer l\'objet requête,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.');
}
}
function getServerList()
{
/* À cet endroit précis, on peut faire apparaître un message d'attente */
var messagebloc = document.getElementById('messagebloc');
messagebloc.innerHTML = 'Traitement en cours, veuillez patienter...';
/* On crée l'objet XHR */
creerRequete();
/* Définition du fichier de traitement */
var url = 'fonctions.php?f=1';
/* Envoi de la requête à la page de traitement */
requete.open('GET', url, true);
/* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */
requete.onreadystatechange = function()
{
/* Lorsque l'état est à 4 */
if(requete.readyState == 4)
{
/* Si on a un statut à 200 */
if(requete.status == 200)
{
/* Mise à jour de l'affichage, on appelle la fonction apropriée */
var listeServers = requete.responseText;
document.getElementById('serverlist').parentNode.innerHTML = '<select id="serverlist" id="serverlist" onchange="getServicesFromServer(this.value);"><option value="--">- - - Choisissez un serveur - - -</option>' + listeServers + '</select>';
messagebloc.innerHTML = '';
}
}
};
requete.send(null);
messagebloc.innerHTML = '';
}
function getServicesFromServer(id)
{
if(id == '--')
{
document.getElementById('messagebloc').innerHTML = '';
document.getElementById('blocservices').innerHTML = '';
return;
}
var messagebloc = document.getElementById('messagebloc');
messagebloc.innerHTML = 'Traitement en cours, veuillez patienter...';
/* On crée l'objet XHR */
creerRequete();
/* Définition du fichier de traitement */
var url = 'fonctions.php?f=2&id='+id;
/* Envoi de la requête à la page de traitement */
requete.open('GET', url, true);
/* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */
requete.onreadystatechange = function()
{
/* Lorsque l'état est à 4 */
if(requete.readyState == 4)
{
/* Si on a un statut à 200 */
if(requete.status == 200)
{
/* Mise à jour de l'affichage, on appelle la fonction apropriée */
var listeServices = requete.responseText;
var blocService = document.getElementById('blocservices');
document.getElementById('blocservices').innerHTML = '<select id="serviceslist" id="serviceslist" ><option value="--">- - - Choisissez un service - - -</option>' + listeServices + '</select>';
messagebloc.innerHTML = '';
}
}
};
requete.send(null);
messagebloc.innerHTML = '';
}
function getServerGroupList()
{
/* À cet endroit précis, on peut faire apparaître un message d'attente */
var messagebloc = document.getElementById('messagebloc');
messagebloc.innerHTML = 'Traitement en cours, veuillez patienter...';
/* On crée l'objet XHR */
creerRequete();
/* Définition du fichier de traitement */
var url = 'fonctions.php?f=3';
/* Envoi de la requête à la page de traitement */
requete.open('GET', url, true);
/* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */
requete.onreadystatechange = function()
{
/* Lorsque l'état est à 4 */
if(requete.readyState == 4)
{
/* Si on a un statut à 200 */
if(requete.status == 200)
{
/* Mise à jour de l'affichage, on appelle la fonction apropriée */
var GrouplisteServers = requete.responseText;
document.getElementById('servergrouplist').parentNode.innerHTML = '<select id="servergrouplist" id="servergrouplist"><option value="--">- - - Choisissez un groupe de serveurs - - -</option>' + GrouplisteServers + '</select>';
messagebloc.innerHTML = '';
}
}
};
requete.send(null);
messagebloc.innerHTML = '';
}
function getServiceGroupList()
{
/* À cet endroit précis, on peut faire apparaître un message d'attente */
var messagebloc = document.getElementById('messagebloc');
messagebloc.innerHTML = 'Traitement en cours, veuillez patienter...';
/* On crée l'objet XHR */
creerRequete();
/* Définition du fichier de traitement */
var url = 'fonctions.php?f=4';
/* Envoi de la requête à la page de traitement */
requete.open('GET', url, true);
/* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */
requete.onreadystatechange = function()
{
/* Lorsque l'état est à 4 */
if(requete.readyState == 4)
{
/* Si on a un statut à 200 */
if(requete.status == 200)
{
/* Mise à jour de l'affichage, on appelle la fonction apropriée */
var GrouplisteServices = requete.responseText;
document.getElementById('servicegrouplist').parentNode.innerHTML = '<select id="servicegrouplist" id="servicegrouplist"><option value="--">- - - Choisissez un groupe de services - - -</option>' + GrouplisteServices + '</select>';
messagebloc.innerHTML = '';
}
}
};
requete.send(null);
messagebloc.innerHTML = '';
}