J'ai pas trouvé le bon évenement javascript !!

J'ai pas trouvé le bon évenement javascript !! - HTML/CSS - Programmation

Marsh Posté le 21-03-2006 à 12:16:06    

Bonjour,
 
j'utilise deux boutons radios dans mon forumaire, et à l'aide d'un script javascript, des champs aparraissent selon le bouton choisi.
le probléme c'est que j'ai une liste déroulante dynamique qui vient aprés(en PHP), et qui recharge la page en cours, ce qui enléve les champs apparus précédements..., je crois que la solution consiste à trouver le bon événement javascript.
ça me bloque depuis prés d'une semaine, donc si vous avez une idée, aidez moi svp.
merci

Reply

Marsh Posté le 21-03-2006 à 12:16:06   

Reply

Marsh Posté le 21-03-2006 à 13:50:22    

Désolé, mais la question n'est pas claire.
Il faudrait un évènement pour faire quoi ?
Pour réssusciter les boutons qui ont disparus ?
Un morceau de code aiderait peut-être à la description du problème.

Reply

Marsh Posté le 22-03-2006 à 10:43:51    

Citation :

 Désolé, mais la question n'est pas claire.
Il faudrait un évènement pour faire quoi ?
Pour réssusciter les boutons qui ont disparus ?
Un morceau de code aiderait peut-être à la description du problème.


 
C'est pas faux. En plus c'est un sujet qu'il me semble déja avoir traité de façon personelle, donc je pourrai certainement t'apporter mon aide si tu donne plus de précision, et des bouts de code...
 
(PS : rien à voir mais qqun pourrait me dire pour faire une citation qui commence par intel a dit : ?)

Reply

Marsh Posté le 22-03-2006 à 11:15:04    

chifoaz a écrit :

Bonjour,
 
j'utilise deux boutons radios dans mon forumaire, et à l'aide d'un script javascript, des champs aparraissent selon le bouton choisi.
le probléme c'est que j'ai une liste déroulante dynamique qui vient aprés(en PHP), et qui recharge la page en cours, ce qui enléve les champs apparus précédements..., je crois que la solution consiste à trouver le bon événement javascript.
ça me bloque depuis prés d'une semaine, donc si vous avez une idée, aidez moi svp.
merci


 
Ce n'est pas un pb javascript. il faut juste que, quand tu génères ta page côté serveur après une action sur la liste déroulante,
tu prennes en compte l'état de tes boutons radio.
 
 - lecture du parametre correspondant aux radio
 - si le parametre est présent et que sa valeur implique l'affichage des champs
      on affiche les champs (duh !)
   sinon (soit c'est le 1er affichage soit la valeur du radio n'a pas changée)
      on n'affiche rien de plus
 
Côté javascript rien ne change

Reply

Marsh Posté le 22-03-2006 à 11:26:53    

mais l'événement utilisé pour affiché les champs est "onclick"(le résultat est le méme avec les autres), donc quand je recharge la page, puisque je n'ai pas cliqué, les champs ne seront pas réafichés.

Reply

Marsh Posté le 22-03-2006 à 11:34:27    

J'ai certainement une solution pour toi, seulement j'aimerai plus de précisions, et surtout les morceaux de code nécessaires.

Reply

Marsh Posté le 22-03-2006 à 11:34:55    

chifoaz a écrit :

mais l'événement utilisé pour affiché les champs est "onclick"(le résultat est le méme avec les autres), donc quand je recharge la page, puisque je n'ai pas cliqué, les champs ne seront pas réafichés.


 
donc ce que dit bidem est valable...lors du rechargement de ta page par ton php de la liste deroulante, il faut que tu recuperes les valeurs de tes elements pour les re-affecter
c pas onClick qui fait recharger ta page, mais bien ta liste deroulante en php non ?
sinon montres ton code..

Reply

Marsh Posté le 22-03-2006 à 11:44:12    

alien_nan a écrit :

donc ce que dit bidem est valable...lors du rechargement de ta page par ton php de la liste deroulante, il faut que tu recuperes les valeurs de tes elements pour les re-affecter
c pas onClick qui fait recharger ta page, mais bien ta liste deroulante en php non ?
sinon montres ton code..


 
voici le code:
<script language="Javascript">
function met(btn,champ1,champ2,champ3,champ4,champ5,champ6,champ7)
{
 if (btn.checked)
   {
    document.getElementById(champ1).style.display="inline";
 document.getElementById(champ2).style.display="inline";
 document.getElementById(champ3).style.display="inline";
 document.getElementById(champ4).style.display="inline";
 document.getElementById(champ5).style.display="inline";
 document.getElementById(champ6).style.display="none";
 document.getElementById(champ7).style.display="none";
   }
 
}
</script>
<script>
function mett(btn,champ1,champ2,champ3,champ4,champ5,champ6,champ7)
{
 if (btn.checked)
   {
    document.getElementById(champ1).style.display="none";
 document.getElementById(champ2).style.display="none";
 document.getElementById(champ3).style.display="none";
 document.getElementById(champ4).style.display="none";
 document.getElementById(champ5).style.display="none";
 document.getElementById(champ6).style.display="inline";
 document.getElementById(champ7).style.display="inline";
 
   }

 
voici la partie sur les listes déroulantes:  
<form name= "gérer" action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" >  
<fieldset style="border: 3px double #333399">  
<p align="center"><strong>Date:
  <?
  $date = date("Y-m-d" );
  echo $date;  
  ?>
</strong></p>
<p>Service:  
     
    <select name="Service" id="service" onChange="document.forms[0].submit();">
      <option value="-1">- - - Choisissez une service - - -</option>
      <?php  
   $sql4 = " SELECT Service
        FROM `salariés` ";
   
  $sql5 = " SELECT Nom, Prénom
        FROM `salariés` WHERE Service = '".$service_temp."' ";
   if($connexion != false)  
 
   $rech_service= mysql_query($sql4);
   $rech_salarié= mysql_query($sql5);
   /* les compteurs */  
   $ns = 0;//compteur pour les services
   $nss= 0;//compteur pour les salariés(rédacteurs)
            /* On crée un tableau pour les noms des sites */  
         
 
   $nom_service = array();  
   $nom_salarié = array();  
   $prénom_salarié = array();
       
   
   
   $ligne2 = mysql_fetch_assoc($rech_service);
   $temp= $ligne2['Service'];
   $bool = false;
   while($ligne_service = mysql_fetch_assoc($rech_service))  
            {  
    if(($ligne_service['Service'] != $temp)||($bool== false))
    {
       array_push($nom_service, $ligne_service['Service']);  
                $ns++;
    $bool = true;
    }  
    $temp = $ligne_service['Service'];
            }  
   
    while($ligne_salarié = mysql_fetch_assoc($rech_salarié))  
            {  
     
       array_push($nom_salarié, $ligne_salarié['Nom']);
    array_push($prénom_salarié, $ligne_salarié['Prénom']);  
                $nss++;  
    //print_r(array_values ($nom_salarié)); permet d'afficher le contenu du tableau
 
            }    
   
    for($d = 0; $d<$ns; $d++)  
    {  
?>  
      <option value="<?php echo($nom_service[$d]); ?>"
  <?php echo((isset($service_temp) && $service_temp == $nom_service[$d])?" selected=\"selected\"":null); ?>> <?php echo($nom_service[$d]); ?></option>
      <?php  
    }  
    ?>
    </select>  
    R&eacute;dacteur:
    <select name="Salarié" id="Salarié">
 <option value="-1"> Vous &ecirc;tes: </option>
      <?php  
            for($d = 0; $d<$nss; $d++)  
            {  
                ?>
      <option value="<?php echo($nom_salarié[$d]." ".$prénom_salarié[$d]); ?>"<?php echo((isset($salarié_selectionne) && $salarié_selectionne == $nom_salarié[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_salarié[$d]." ".$prénom_salarié[$d]); ?></option>
      <?php  
            }  
?>

 
et voici la partie des boutons:
<input name="ajour" type="radio" id="oui"  
  onclick="met(this,'Modification','D&eacute;signation','livraison','Date livraison','PS','bonindice','entrez_indice');" value="oui"  <?
 if((!empty($_POST['ajour']))&&($_POST['ajour']=="oui" )){
   echo 'checked="checked"';
} ?>  />
  &nbsp;<label >oui</label>
 
 
<input name="ajour" type="radio" id="non"
  onclick="mett(this,'Modification','D&eacute;signation','livraison','Date livraison','PS','bonindice','entrez_indice');" value="non"  <?
 if((!empty($_POST['ajour']))&&($_POST['ajour']=="non" )){
   echo 'checked="checked"';
} ?> />&nbsp;<label >non</label>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed