Timing sur un script

Eléphant du PHP | 353 Messages

05 mai 2006, 10:47

Bonjour , j'ai des soucis pour un timing pour executer un script

J'ai un select qui est chargé dynamiquement.

J'aurais voulu positionner celui-ci sur la valeur donnée.

Mais le problème est que si le select estpas chargé , je ne sais pas le positionner et j'ai une erreur javascript.

J'ai donc pensé à faire une condition afin de ré-exectuer le script , mais j'ai alors un fenetre qui m'indique que le script est out of memory

voici le morceau de code

Code : Tout sélectionner

function whenloaded() { if(!document.getElementById('city')) { whenloaded(); } else{ repositionner(); } }
J'appelle cette fonction au body onload=""

la fonction repositionner :

Code : Tout sélectionner

function repositionner() { var SelectName = 'add_item.city'; var Value = "<?=$_SESSION['add_item']['city']?>"; eval('SelectObject = document.' + SelectName + ';'); for(index = 0; index < SelectObject.length; index++) { if(SelectObject[index].value == Value) SelectObject.selectedIndex = index; }
Si je mets un alert avant ca passe bien !!

Comment pourrais-je mettre un delai avant de refaire le whenloaded ?

Merci d'avance

Eléphant du PHP | 353 Messages

05 mai 2006, 10:58

Bon beh j'ai cherché un peu plus et j'ai trouvé une solution la voici :>
function whenloaded()
	{
	if(!document.getElementById('city'))
		{
		var t=setTimeout("whenloaded()",1000);
		}
	else{
		repositionner();
		}
	}

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 mai 2006, 16:18

Question bête mais... pourquoi ne pas simplement placer directement l'attribut "selected" avec php dans l'option qui va bien ?
<select name="...">
  <option value="xxx" <? if ($_SESSION['add_item']['city']=="xxx") echo "selected"; ?> > libellé </option> 
  ...
</select>