test dans un select avec onchange

Eléphant du PHP | 107 Messages

16 janv. 2009, 15:06

Bonjour,

Ceux que je veux faire c'est de récupérer la valeur de mon select avant qu'on la selectionne
voici le code :
<select id="slcDevise" onchange="Ajax();">
		<option value="">	</option>
			<?php SelectDevise() ?>
	</select>
	</br>	
	<div id="slcAffiche" style="display:inline" >
	</div>

traitement.js :
function initAjax()
	{
		var xmlHttp;
		try
		{
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		}
		catch (e)
		{
			// Internet Explorer
			try
			{
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		return xmlHttp ;
	}
function Ajax()
{
		var xmlHttp2=initAjax()
		var iddevise='-1';
		//window.alert("execution ajax");
		xmlHttp2.onreadystatechange=function()
		{
			//window.alert("execution onreadystatechange");
			if(xmlHttp2.readyState == 4 || xmlHttp2.readyState == 0)
			{
				//window.alert("execution onreadystatechange");
				//				window.alert(" avant:"+idauteur);
				document.getElementById('slcAffiche').innerHTML = xmlHttp2.responseText;
			}
		}
			sel = document.getElementById('slcDevise');
			
			iddevise = sel.options[sel.selectedIndex].value;
		
			
			//window.alert("apres:"+idauteur);
			xmlHttp2.open("GET","traitement.php?Devise="+iddevise,true);
			//window.alert("apres1:"+idauteur);
			xmlHttp2.send(null);
					
}
et dans traitement.php
$iddevise = $_GET['Devise'];
if($iddevise=='a')
{	
print "a";
}elseif($iddevise=='b'){
print "b";
}else{
print "valeur par défaut";
}

Cette select fait appel a la fonction Ajax() pour l'affichage de quelques choses selon le choix
Mon probleme c'est que je voudrais afficher quelque chose par défaut avant qu'in selectionne la liste mais apparament le value n'est pas défini que quand on a selectionné dans le select.

si les 2 conditions ne sont pas vérifier, normalement il doit afficher la valeur par défaut
mais j'ai fait print $iddevise mais il n'affiche pas de valeur qu'après selection dans select
j'ai tester avec isset mais ça ne marche pas

A la premier affichage de la page, ma liste est vide.Comment pourrais-je récupérer la value de cette liste vide pour que je puisse afficher quelques choses

merçi pour votre aide

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

16 janv. 2009, 16:52

Ceux que je veux faire c'est de récupérer la valeur de mon select avant qu'on la selectionne
Ca c'est de la divination et javascript il sait pas faire ;)

Pour avoir une valeur sélectionnée par défaut dans ton select, il faut utiliser l'attribut "selected" dans l'option que tu veux voir affiché par défaut (sans quoi c'est le premier élément de la liste qui sera sélectionné)

Maintenant, le fait d'avoir une valeur préselectionnée dans ta liste ne déclenchera pas le "onchange" et donc pas l'appel ajax. Il te faut déclencher le traitement ajax manuellement au chargement de la page (dans le onload par exemple) ou bien savoir qu'au chargement ta page (quand par exemple ta variable $_GET['Devise'] n'est pas définie) il te faut afficher certaines informations par défaut et les inclure directement dans ta page :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 107 Messages

16 janv. 2009, 17:06

ok merci bien pour la réponse en fait trouvé

Code : Tout sélectionner

il te faut afficher certaines informations par défaut et les inclure directement dans ta page Smile
et la socution c'est bien ça

jai mis directement les informations par défaut entre les balises div qui sera changé dynamiquement quand on selection dans select

merci et bon week end à tous :)