Page 1 sur 2

liste dynamique jumelée (dreamweaver Mx 2004)

Posté : 07 sept. 2006, 14:30
par fred9999
Bonjour,

VOila je travaille sous dreamweaver mx 2004 mais chut chut pas de marque !!!!

et je cherche le moyen de dynamisé une liste déroulante en fonction de la première.

explication :

voila dans ma première liste j'ai des horaires et j'aimerai qu'en fonction de celle sélectionnée on ne puisse pas choisir une horaire inférieur.

Comment es ce possible en utilisant les fonctions dreamweaver??

Posté : 07 sept. 2006, 14:56
par fred9999
Désolé,
non mais en fait laissé tomber je viens de me rendre compte de la connerie que je viens de demander :oops: .

je vous passe mon code et je vous explique ce que je veut réaliser :

Code : Tout sélectionner

<? if(isset($_POST['change_style'])) // On vérifie que le formulaire a été soumis { // On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite setcookie('style', $_POST['style'], time()+(365*24*3600)) ; // Si le fichier *.css existe on définit une variable $css correspondant au style choisi $css = $_POST['style'] ; $css="$css.css"; } elseif(isset($_COOKIE['style'])) // Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style { $css = $_COOKIE['style']; $css="$css.css"; } else // Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple { $css = "ml.css" ; }?> <html> <head> <title>Site de la mission local de RENNES</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../".$css."\">\n" ; ?> </head> <body> <table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000"> <tr> <td bordercolor="#000000" bgcolor="#009900"><div align="center"><strong>Ajout de r&eacute;union dans le module AGENDA </strong></div></td> </tr> </table> <br> <table width="100%" border="1" bordercolor="#000000" cellpadding="0" cellspacing="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <td width="17%">&nbsp;</td> <td width="39%">Heure de d&eacute;but </td> <td width="44%">Heure de fin </td> </tr> <tr> <td>Horaires : </td> <td><select name="select"> <option>8h30 / 9h</option> <option>10h</option> <option>11h</option> <option>13h30 / 14h</option> <option>15h</option> <option>16h</option> </select></td> <td><select name="select2"> <option>10h</option> <option>11h</option> <option>12h / 12h30</option> <option>15h</option> <option>16h</option> <option>17h / 17h30</option> </select></td> </tr> <tr> <td>Lieu :</td> <td><input name="textfield" type="text" size="50"></td> <td>&nbsp;</td> </tr> <tr> <td>Th&egrave;me : </td> <td><input name="textfield2" type="text" size="50"></td> <td>&nbsp;</td> </tr> <tr> <td>Animation : </td> <td><input name="textfield3" type="text" size="50"></td> <td>&nbsp;</td> </tr> <tr> <td><p>Invit&eacute; : </p> </td> <td><input name="textfield4" type="text" size="50"></td> <td>&nbsp;</td> </tr> <tr> <td>Participants : </td> <td colspan="2">&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td colspan="2">Nombre : &nbsp; <input type="text" name="textfield5"> Personnes. </td> </tr> <tr> <td>&nbsp;</td> <td colspan="2">Condition : <input name="textfield42" type="text" size="50"></td> </tr> <tr> <td>&nbsp;</td> <td colspan="2">Possibilt&eacute; d'inscription : <input type="radio" name="radiobutton" value="radiobutton"> Oui <input type="radio" name="radiobutton" value="radiobutton"> Non</td> </tr> <tr> <td>&nbsp;</td> <td colspan="2">&nbsp;</td> </tr> <tr> <td colspan="3"><div align="center"> <input type="submit" name="Submit" value="Envoyer"> </div></td> </tr> <tr> <td>&nbsp;</td> <td colspan="2">&nbsp;</td> </tr> </table></td></tr></table> </body> </html>
voila et ce que je veut faire c'est que en fonction de la première liste on ne me propose pas de valeur inférieur dans la seconde.

a mon avis il doit falloir du javascript mais peut etre pas.... :lol: [/php]

Posté : 07 sept. 2006, 15:33
par Truc
Heureusement que tu t'es rattrapé en postant une 2ème fois :lol:
On ne peut pas TOUT demander à ce pauvre DW par simple clics :wink:

Pour ce que tu veux faire c'est faisable en PHP ou Javascript à toi de voir si tu veux recharger la page après le choix de l'utilisateur dans la 1ère liste ou non.

Plus simple en PHP, suffit de comparer la valeur POST récupérée après chargement avec les "value" des option pour savoir s'il faut afficher ou non.

En Javascript regarde ce post

Posté : 07 sept. 2006, 15:44
par fred9999
en fait je connais pas le javascript
je l'utilise parfois a l'aide de script récupéré sur le net :oops:
A part pour le history go -1 :lol:
mai la je vois pas a quoi tt ça correspond :cry:

peut tu m'aider a y voir + clair :idea:

Posté : 07 sept. 2006, 15:59
par Truc
On se lance dans la version PHP ou Javascript ?

Pour le JS une boucle parcourt la liste (select) puis supprime les éléments (option) qui ne doivent pas apparaitre.

Posté : 07 sept. 2006, 16:01
par fred9999
allons y pour le js sinon mes utilisateurs vont gueuler :P

ils comprennent pas tjs le travail que demande le boulot d'informaticien :lol:

Posté : 07 sept. 2006, 16:10
par Truc
Et bien je commence par déplacer le post dans le forum approprié... je réfléchis un peu et reviens :lol:

Posté : 07 sept. 2006, 16:13
par fred9999
oki thank amigo !!!

quand a moi je suis grace a mes deux écrans 8)

j'ai déplacé la fonction javascript dans ma page donc hé bien une petite scéance de code :
<?
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
		// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite

		setcookie('style', $_POST['style'], time()+(365*24*3600)) ;
		// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
		$css = $_POST['style'] ;
		$css="$css.css";

}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
	$css = $_COOKIE['style'];
	$css="$css.css";
}	
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "ml.css" ;
}?>
<html>
<head>
<title>Site de la mission local de RENNES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../".$css."\">\n" ;
?>
<script language="JavaScript" type="text/JavaScript">
<!--
for (
var i = document.recherche_nom.hfin.options.length; i >= 0 ; i--) 
{ 
  if(document.recherche_nom.hdep.options[i].selected) // si l'option est sélectionnée 
    document.recherche_nom.hfin.options[i] = null; // on la supprime 
}
//-->
</script>
</head>
<body>
<table width="100%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
  <tr>
    <td bordercolor="#000000" bgcolor="#009900"><div align="center"><strong>Ajout de r&eacute;union dans le module AGENDA </strong></div></td>
  </tr>
</table>
<br>
<table width="100%" border="1" bordercolor="#000000" cellpadding="0" cellspacing="0">
<tr>
<td>
<form action="agenr.php" method="post">
<table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
  <tr>
    <td width="17%">&nbsp;</td>
    <td width="39%">Heure de d&eacute;but </td>
    <td width="44%">Heure de fin </td>
  </tr>
  <tr>
    <td>Horaires : </td>
    <td><select name="hdep" id="hdep">
      <option>8h30 / 9h</option>
      <option>10h</option>
      <option>11h</option>
      <option>13h30 / 14h</option>
      <option>15h</option>
      <option>16h</option>
    </select></td>
    <td><select name="hfin" id="hfin">
      <option>10h</option>
      <option>11h</option>
      <option>12h / 12h30</option>
      <option>15h</option>
      <option>16h</option>
      <option>17h / 17h30</option>
            </select></td>
  </tr>
  <tr>
    <td>Date</td>
    <td><input name="date" type="text" id="date" value="00/00/0000" size="11" maxlength="10"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Lieu :</td>
    <td><input name="lieu" type="text" id="lieu" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Th&egrave;me : </td>
    <td><input name="theme" type="text" id="theme" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Animation : </td>
    <td><input name="anim" type="text" id="anim" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><p>Invit&eacute; : </p>    </td>
    <td><input name="guest" type="text" id="guest" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Participants : </td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">Nombre : &nbsp;
      <input name="nbpart" type="text" id="nbpart"> 
      Personnes. </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">Condition : 
      <input name="inscri" type="text" id="inscri" size="50"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">Possibilt&eacute; d'inscription : 
      <input type="radio" name="poss" value="radiobutton">
      Oui 
      <input type="radio" name="poss" value="radiobutton">
      Non</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3"><div align="center">
      <input type="submit" name="Submit" value="Envoyer"></form>
    </div></td>
    </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>
</td></tr></table>
</body>
</html>
voila ou j'en suis :lol:

Posté : 07 sept. 2006, 16:53
par fred9999
I'll be back tomorrow :lol:

Posté : 07 sept. 2006, 17:41
par Truc
Oh ben personne n'est parfait :langue:

changement de méthode... on ne supprime plus au fur et à mesure de la liste mais on la créée au fur et à mesure.

Fonctions JS :
//fonction pour vider la liste
function vider()
{
	var lg = document.f.hfin.options.length-1;
	for (var i = lg; i>=0; i--) 
	{  	  		
  		document.f.hfin.options[i] = null; //suppression de l'option
	}
}


function construire(valeur)
{	
	// création des tableaux de "value" et libellé
	var tab_value = Array(10,11,12,15,16,17);
	var tab_libelle = Array("10h","11h","12h / 12h30","15h","16h","17h / 17h30");
		
	var nb_elem=0;
	
	vider(); // on vide la liste
	
	//création des nouvelles options
	for (var i =0; i< tab_value.length; i++) 
	{  
  		if(tab_value[i] > valeur) //si l'élément à créer est supperieur à celui de la liste sélectionné
    		{
    			var new_option = new Option(tab_libelle[i],tab_value[i]); // création de l'option
    			document.f.hfin.options[nb_elem]=new_option; //ajout de l'option
    			nb_elem++; 
    		}
    			
	}
	document.f.hfin.options[0].selected=true; // sélectionner le 1er élément de la liste
	
}
HTML :
<select name="hdep" id="hdep" onchange="construire(this.value);">      
	<option value="8" >8h30 / 9h</option>
	<option value="10">10h</option>
	<option value="11">11h</option>
	<option value="13">13h30 / 14h</option>
	<option value="15">15h</option>
	<option value="16">16h</option>
</select>
<select name="hfin" id="hfin">
	<option value="10">10h</option>
	<option value="11">11h</option>
	<option value="12">12h / 12h30</option>
	<option value="15">15h</option>
	<option value="16">16h</option>
	<option value="17">17h / 17h30</option>
</select>
ça devrait faire l'affaire........ mais ce n'est pas une habitude à prendre... d'attendre un code tout cuit :wink:

Posté : 08 sept. 2006, 08:47
par fred9999
merci

Je pense que je vais devoir acheter un autre livre après dreamweaver,
flash 8 .... :?

Il va me fallloir un livre sur le javascript et l'actionscript.

tu fais pas d'édition ou de cours du soir :lol:

merci encore en tout cas sur ce monseigneur .... a plus tard.

Posté : 08 sept. 2006, 08:52
par fred9999
EN fait ça ne fonctionne pas je vais voir si je peut triuver l'erreur mai
comme j'y connais RIEN en js ..... :shock:

@+

Posté : 08 sept. 2006, 09:17
par fred9999
En fait je ne comprend rien :lol:

donc si qqun avai la gentilesse de m'aider je lui serait reconnaissant :wink:
<?
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
		// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite

		setcookie('style', $_POST['style'], time()+(365*24*3600)) ;
		// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
		$css = $_POST['style'] ;
		$css="$css.css";
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
	$css = $_COOKIE['style'];
	$css="$css.css";
}	
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "ml.css" ;
}?>
<html>
<head>
<title>Site de la mission local de RENNES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../".$css."\">\n" ;
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function vider() 
{ 
    var lg = document.f.hfin.options.length-1; 
    for (var i = lg; i>=0; i--)  
    {                 
          document.f.hfin.options[i] = null; //suppression de l'option 
    } 
} 


function construire(valeur) 
{     
    // création des tableaux de "value" et libellé 
    var tab_value = Array(10,11,12,15,16,17); 
    var tab_libelle = Array("10h","11h","12h / 12h30","15h","16h","17h / 17h30"); 
         
    var nb_elem=0; 
     
    vider(); // on vide la liste 
     
    //création des nouvelles options 
    for (var i =0; i< tab_value.length; i++)  
    {   
          if(tab_value[i] > valeur) //si l'élément à créer est supperieur à celui de la liste sélectionné 
            { 
                var new_option = new Option(tab_libelle[i],tab_value[i]); // création de l'option 
                document.f.hfin.options[nb_elem]=new_option; //ajout de l'option 
                nb_elem++;  
            } 
                 
    } 
    document.f.hfin.options[0].selected=true; // sélectionner le 1er élément de la liste 
     
}
//-->
</script>
</head>
<body>
<table width="100%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
  <tr>
    <td bordercolor="#000000" bgcolor="#009900"><div align="center"><strong>Ajout de r&eacute;union dans le module AGENDA </strong></div></td>
  </tr>
</table>
<br>
<table width="100%" border="1" bordercolor="#000000" cellpadding="0" cellspacing="0">
<tr>
<td>
<form action="agenr.php" method="post">
<table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
  <tr>
    <td width="17%">&nbsp;</td>
    <td width="39%">Heure de d&eacute;but </td>
    <td width="44%">Heure de fin </td>
  </tr>
  <tr>
    <td>Horaires : </td>
    <td>
	<select name="hdep" id="hdep" onchange="construire(this.value);">       
    <option value="8" >8h30 / 9h</option> 
    <option value="10">10h</option> 
    <option value="11">11h</option> 
    <option value="13">13h30 / 14h</option> 
    <option value="15">15h</option> 
    <option value="16">16h</option> 
</select>
</td>
    <td>
	<select name="hfin" id="hfin"> 
    <option value="10">10h</option> 
    <option value="11">11h</option> 
    <option value="12">12h / 12h30</option> 
    <option value="15">15h</option> 
    <option value="16">16h</option> 
    <option value="17">17h / 17h30</option> 
</select>
</td>
  </tr>
  <tr>
    <td>Date</td>
    <td><input name="date" type="text" id="date" value="00/00/0000" size="11" maxlength="10"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Lieu :</td>
    <td><input name="lieu" type="text" id="lieu" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Th&egrave;me : </td>
    <td><input name="theme" type="text" id="theme" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Animation : </td>
    <td><input name="anim" type="text" id="anim" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><p>Invit&eacute; : </p>    </td>
    <td><input name="guest" type="text" id="guest" size="50"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Participants : </td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">Nombre : &nbsp;
      <input name="nbpart" type="text" id="nbpart" size="5" maxlength="10"> 
      Personnes. </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">Condition : 
      <input name="inscri" type="text" id="inscri" size="50"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">Possibilt&eacute; d'inscription : 
      <input type="radio" name="poss" value="1">
      Oui 
      <input name="poss" type="radio" value="0" checked>
      Non</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3"><div align="center">
      <input type="submit" name="Submit" value="Envoyer"></form>
    </div></td>
    </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>
</td></tr></table>
</body>
</html>
C'est bien comme ça qu'on le passe le code ???

sinon je vois pas

Posté : 08 sept. 2006, 09:43
par Truc
remplace le nom du formulaire par le tient :

document.f

Posté : 08 sept. 2006, 09:52
par Truc
Faudrait même ajouter un attribut => name="f"

Pour débugger du javascript la console JS de Firefox n'est pas mal :wink: