J'ai pas trouvé le bon évenement javascript !! - HTML/CSS - Programmation
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.
Marsh Posté le 22-03-2006 à 10:43:51
Citation : Désolé, mais la question n'est pas claire. |
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 : ?)
Marsh Posté le 22-03-2006 à 11:15:04
chifoaz a écrit : Bonjour, |
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
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.
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.
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..
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 |
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édacteur:
<select name="Salarié" id="Salarié">
<option value="-1"> Vous ê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ésignation','livraison','Date livraison','PS','bonindice','entrez_indice');" value="oui" <?
if((!empty($_POST['ajour']))&&($_POST['ajour']=="oui" )){
echo 'checked="checked"';
} ?> />
<label >oui</label>
<input name="ajour" type="radio" id="non"
onclick="mett(this,'Modification','Désignation','livraison','Date livraison','PS','bonindice','entrez_indice');" value="non" <?
if((!empty($_POST['ajour']))&&($_POST['ajour']=="non" )){
echo 'checked="checked"';
} ?> /> <label >non</label>
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