OnLoad sous IE

Fermé
samp38 Messages postés 3 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 7 décembre 2007 - 13 nov. 2007 à 02:37
samp38 Messages postés 3 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 7 décembre 2007 - 13 nov. 2007 à 21:55
Bonjour,

    Je vous previens tout de suite je suis débutant, et la page de code qui suit est ma premiere... et voila je suis en face d'un probleme qui me turlupine nuit et jour ! Dans une page php, je definis une fonction javascript qui a pour but de remplir des <select> en faisant appel a une base de donnee. Je souhaite charger cette fonction au demarrage de la page. J'ai donc procédé comme suit : <body onLoad="mafonction();"/> 
    Mais voila, avec firefox pas de probleme, tandis que sous IE j'ai une erreur : "objet attendu" au niveau de du onLoad (meme ligne). Comment rendre ma page fonctionnelle sous IE ?

Voici le code :

<?php
session_start();

if(!$_SESSION['connecte'])
	die('Vous devez vous connecter');
	
	
function tronque($str,$len=20){
	if(strlen($str)>$len)
		return substr($str,0,$len).'...';
	else
		return $str;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title> DreamLib  - version html (spéciale dédicace à nalexbebewls) </title>
		<link rel="stylesheet" media="screen" type="text/css" title="htmldesign" href="html.css" />
		
		<!-- partie Javascript -->
		<script type="text/javascript">
			function test(){
				alert('test reussi');
			}
			function actualise() {
				//genre = document.getElementById ('genre').value;
				xmlhttp = new XMLHttpRequest();
				if (xmlhttp.overrideMimeType) {
					xmlhttp.overrideMimeType('text/xml');
				}
				// Recupere les ID des champs selectionnés
				var genreID = document.getElementById('genre').value;
				var albumID = document.getElementById('album').value;
				var artisteID = document.getElementById('artiste').value;
				
				//alert('http://samp38.dyndns.org/dreamlib/php/actualiseNavigateur.php?genreID=' + genreID + '&albumID=' + albumID + '&artisteID=' +artisteID);
				xmlhttp.open("GET", '../html/actualiseNavigateur.php?genreID=' + genreID + '&albumID=' + albumID + '&artisteID=' +artisteID);
				
				xmlhttp.onreadystatechange = function() {
					if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						//alert(xmlhttp.responseText);
						var xmldoc = xmlhttp.responseXML;
						
						// récupère le tableau des <genre id='..' nomGenre='bewls' />
						var genresHTML;
						var genres = xmldoc.getElementsByTagName('genre');
						if (genreID == -1) {
							genresHTML = "<option value=-1 selected>Tous</option>\n";
						}
						else {
							genresHTML = "<option value=-1>Tous</option>\n";
						}
						for(var i=0; i<genres.length; i++){
							var genre = genres[i];
							if (genreID != -1 && genreID == genre.getAttribute('id')) {
								genresHTML += '<option value = ' + genre.getAttribute('id') + ' selected>' + genre.getAttribute('nomGenre') + '</option>\n';
							}
							else {
								genresHTML += '<option value = ' + genre.getAttribute('id') + '>' + genre.getAttribute('nomGenre') + '</option>\n';
							}
						}
						var genresSelect = document.getElementById('genre');
						genresSelect.innerHTML = genresHTML;
						
						// récupère le tableau des <albums id='..' nomAlbum='bewls' />
						var albumsHTML;
						var albums = xmldoc.getElementsByTagName('album');
						if (albumID == -1) {
							albumsHTML = "<option value=-1 selected>Tous</option>\n";
						}
						else {
							albumsHTML = "<option value=-1 >Tous</option>\n";
						}
						for(var i=0; i<albums.length; i++){
							var album = albums[i];
							if (albumID != -1 && albumID == album.getAttribute('id')) {
								albumsHTML += '<option value = ' + album.getAttribute('id') + ' selected>' + album.getAttribute('nomAlbum') + '</option>\n';
							}
							else {
								albumsHTML += '<option value = ' + album.getAttribute('id') + '>' + album.getAttribute('nomAlbum') + '</option>\n';
							}
						}
						var albumsSelect = document.getElementById('album');
						albumsSelect.innerHTML = albumsHTML;
						
						// récupère le tableau des <artiste id='..' nomArtiste='bewls' />
						var artistesHTML;
						var artistes = xmldoc.getElementsByTagName('artiste');
						if (artisteID) {
							artistesHTML = "<option value=-1 selected>Tous</option>\n";
						}
						else {
							artistesHTML = "<option value=-1 >Tous</option>\n";
						}						
						for(var i=0; i<artistes.length; i++){
							var artiste = artistes[i];
							if (artisteID != -1 && artisteID == artiste.getAttribute('id')) {
								artistesHTML += '<option value = ' + artiste.getAttribute('id') + ' selected>' + artiste.getAttribute('nomArtiste') + '</option>\n';
							}
							else {
								artistesHTML += '<option value = ' + artiste.getAttribute('id') + '>' + artiste.getAttribute('nomArtiste') + '</option>\n';
							}
						}
						var artistesSelect = document.getElementById('artiste');
						artistesSelect.innerHTML = artistesHTML;
						
						// récupère le tableau des <chanson id='..' titre='bewls' />						
						var chansons = xmldoc.getElementsByTagName('chanson');
						var chansonsHTML = "<tr> <th> Titre </th> <th> Artiste </th> <th> Album </th></tr>\n";		
						for(var i=0; i<chansons.length; i++){
							var chanson = chansons[i];
							//alert (i);
							var j=i%2;
							chansonsHTML += '<tr class = l' + j + '> <td ondblClick="javascript:onclickchanson(' + chanson.getAttribute('id') + ')">' + chanson.getAttribute('titre') + '</td> <td>' + chanson.getAttribute('nomArtiste') + '</td> <td>' + chanson.getAttribute('nomAlbum') + '</td></tr>\n';
						}
						var chansonsresultTable = document.getElementById('chansonsresult');
						chansonsresultTable.innerHTML = chansonsHTML;
					}
				}
				xmlhttp.send(null);
			}

			function onclickchanson(id) {
			xmlhttp = new XMLHttpRequest();
				if (xmlhttp.overrideMimeType) {
					xmlhttp.overrideMimeType('text/xml');
				}
				xmlhttp.open("GET", 'http://samp38.dyndns.org/dreamlib/html/lis_chanson.php?idChanson=' + id);
				xmlhttp.onreadystatechange = function() {
						if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						
							var xmldoc = xmlhttp.responseXML;
							var chansoncliquee = xmldoc.getElementsByTagName('chansoncliquee');
							chansoncliquee = chansoncliquee[0];
							var dir = '../../bibliotheque/' + chansoncliquee.getAttribute('dirArtiste') + '/' + chansoncliquee.getAttribute('dirAlbum') + '/' + chansoncliquee.getAttribute('Mp3');
							//alert(dir);
							//<!--
							//window.location.replace(dir);
							//-->
						
						
						}					
				}
				xmlhttp.send(null);
			}
	
		</script>
		
	</head>
	
	<body onLoad = "actualise();">	

  

    <div id = "fond">

      
      <div id="en_tete">
           <!-- Ici on mettra la bannière -->
      </div>

        <div id = "titre">

          <h1> DREAMLIB <h1>

        </div>
          

        <div id = "cadre">

          

        </div>

      

        <div id = "search">
          <input id = "searchText" type="text" size="15" />
          <input id = "searchBtn" type="button" value="Chercher" OnClick="actualise();" />
          <br />
        

          <select id = "genre" size="5" onchange= "actualise();">
            <option value = "-1" selected> Tous </option>
          </select>
        
          <select id = "artiste" size="5" onchange= "actualise();">
            <option value = "-1" selected> Tous </option>
          </select>
        
          <select id = "album" size="5" onchange= "actualise();">
            <option value = "-1" selected> Tous </option>
          </select>
        
          <select id = "annee" size="5" onchange= "actualise();">
            <option value = "-1" selected> Tous </option>				
          </select>
        </div>

      
      <div id="conteneurTableau">
        <table id="chansonsresult" border="0">
          
        </table>
      </div>

      

      <div id="pied_de_page">

           <!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... -->

           Réalisé par les Gros Dégueulasses

      </div>
	</body>
</html>
<code>Configuration: Linux
Firefox 2.0.0.8
A voir également:

2 réponses

Salut Samp38,

Essaye plutôt <body onload="javascript:actualise();">
0
samp38 Messages postés 3 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 7 décembre 2007
13 nov. 2007 à 21:55
Bonjour Playboss,

J'ai essayé ta solution mais sans succès. J'ai créé une fonction javascript "test()" qui affiche un alert('test reussi') que j'ai mis dans le onload du body et l'alerte n'est pas affichée sous IE, alors que sous firefix ça marche. Je ne vois pas ce que ça peut être....:-((
Ne dois-je pas mettre un fichier type .js dans une propriété src de mon script java ?

Sam
0