begin process at 2012 05 29 12:48:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

lier une liste déroulante à une liste de checkbox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lier une liste déroulante à une liste de checkbox

jeudi 13 août 2009 à 10:27:34 | lier une liste déroulante à une liste de checkbox

nina599

Bonjour,
Après avoir chercher longtemps chez notre ami google sans trouver de piste je remets entre vos mains mon soucis espérant que quelqu'un y jette un coup d'oeil et me donne une solution.
j'ai crée une liste déroulante avec différentes valeurs, j'obtiens une liste de checkbox differentes pour chaque valeur. J'ai rajouté une fonction javascript qui compte le nombre de cases cochées. et le mets dans un champ texte dont la valeur sera stocké dans la base. Jusque là ça marche.
Mais le souci c'est quand je mets tt ca dans mon application.Quand je change de valeur dans la liste déroulante et puis je décide de retourner vers la liste de checkbox où j'ai dejà coché des cases. je ne trouve rien.Toutes les cases sont à nouveau décoché. Ce qui normal parce que dans le code je lui demande de ramener la mm liste de checkbox que celle du début. Mais ce que je veux c'est qu'il garde les cases que j'ai cochés visibles. Meme après la sauvgarde du formulaire ou le raffraichissement de la page. (on saura qu'on a coché deux cases par exemple mais on saura pas lesquelles).voilà mon code:

Code Javascript :

<script>

function selectbasic(option)
{
switch(option.options[option.selectedIndex].value){
case "1":document.getElementById('div-cause').innerHTML = '<input name="text_qte1" type="checkbox" onClick="inc_decr1(this.checked);"/>un</br><input name="text_qte" type="checkbox" onClick="inc_decr1(this.checked);"/>deux</br><input name="text_qte" type="checkbox" onClick="inc_decr1(this.checked);" />trois</br><input name="text_qte" type="checkbox" onClick="inc_decr1(this.checked);" />quatre</br><input name="text_qte" type="checkbox" onClick="inc_decr1(this.checked);" />cinq</br><input type="text" id="pertinence" name="pertinence" size="50"value="" /> ';
break;
case "2":document.getElementById('div-cause').innerHTML = '<input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);"/>1</br><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);"/>2</br><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);" />3</br> <input type="text" id="pertinence" name="pertinence" size="50"value="" /> ';
break;
default:document.getElementById('div-cause').innerHTML = '';break;
}
}
var compteur1 = 0;
var compteur2 = 0;
function inc_decr1(val_input) {

if (val_input) {

compteur1++;
}else{
compteur1--;
}
if (compteur1<=0) {
document.getElementById('pertinence').value = "Aucune case cochée/Pertinence est égale à 0";
}else{
document.getElementById('pertinence').value = compteur1 + " case(s) cochée(s)"+"la pertinence est égale à : "+(compteur1/5);
}
}
function inc_decr2(val_input) {

if (val_input) {

compteur2++;
}else{
compteur2--;
}
if (compteur2<=0) {
document.getElementById('pertinence').value = "Aucune case cochée/Pertinence est égale à 0";
}else{
document.getElementById('pertinence').value = compteur2 + " case(s) cochée(s)"+"la pertinence est égale à : "+(compteur2/3);
}
}
</script>

et le formulaire:
Code HTML :

<tr>
<td width="30%">
<div style="text-align: left; font-weight: bold;">Type&nbsp;</div>
</td>
<td >
<select class="inputbox" name="type" onchange="selectbasic(this);">
<option value="">-</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<br>
<!-- je veux récupèrer une liste de case à cocher dans un champ caché -->
<div id="div-cause"><input type="text" id="pertinence" name="pertinence" size="5" value="" ></div>

</td>
</tr>

Ca fait une semaine que je cherche et je ne trouve pas. je débute en javascript si qlq peut m'aider. Merci bcp

jeudi 13 août 2009 à 11:06:19 | Re : lier une liste déroulante à une liste de checkbox

Bul3

Membre Club

Bonjour,

le problème n'est vraisemblablement pas
du au javascript.
vous parlez de mettre à jour votre base de données,
donc un formulaire est envoyé vers le serveur
qui recréera la page je suppose
donc tout est réinitialisé.
il faut donc lui dire de
"remettre" les cases cochées
en php par exemple :

if (isset($_post['c1']) $s='checked="checked"';
else $s='';
<input type="checkbox" value="c1"
name="c1" <?php echo $s;?> />

et|ou pour|sur les option si nécessaire


Cordialement [mon Site] [M'écrire] Bul

jeudi 13 août 2009 à 17:35:54 | Re : lier une liste déroulante à une liste de checkbox

nina599

Merci pour ton aide mais j'ai pas réussir à faire marcher ce que tu m'a proposé par contre j'ai modifié le code et maintenant mon problème est résolu à moitié. En fait j'ai crée pour chaque valeur de la liste un div différent contenant une liste de checkbox différente.
la fonction javascript:

Code Javascript :

function selectbasic(option)
{
switch(option.options[option.selectedIndex].value){
case "2":document.getElementById('div-cause1').style.display='';document.getElementById('div-cause2').style.display='none';document.getElementById('div-cause3').style.display='none';document.getElementById('div-cause4').style.display='none';
break;
case "3":document.getElementById('div-cause2').style.display='';document.getElementById('div-cause1').style.display='none';document.getElementById('div-cause3').style.display='none';document.getElementById('div-cause4').style.display='none';
break;
case "4":document.getElementById('div-cause3').style.display='';document.getElementById('div-cause2').style.display='none';document.getElementById('div-cause1').style.display='none';document.getElementById('div-cause4').style.display='none';
break;
default:document.getElementById('div-cause4').style.display='';document.getElementById('div-cause1').style.display='none';document.getElementById('div-cause3').style.display='none';document.getElementById('div-cause2').style.display='none';
break;
}
}


le formulaire html:
Code HTML :

<tr>
<td width="30%">
<div style="text-align: left; font-weight: bold;">Type&nbsp;</div>
</td>
<td >
<select class="inputbox" name="type" onchange="selectbasic(this);">
<option value="">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br>
<div id="div-cause1" style="display:none"><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);"/>1</br><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);"/>2</br><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);" />3</br><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);" />4</br><input name="text_qte" type="checkbox" onClick="inc_decr2(this.checked);" />5</br></div>
<div id="div-cause2" style="display:none"><input name="text_qte" type="checkbox" onClick="inc_decr3(this.checked);"/>11</br><input name="text_qte" type="checkbox" onClick="inc_decr3(this.checked);"/>12</br><input name="text_qte" type="checkbox" onClick="inc_decr3(this.checked);" />13</br></div>
<div id="div-cause3" style="display:none"><input name="text_qte" type="checkbox" onClick="inc_decr4(this.checked);"/>21</br><input name="text_qte" type="checkbox" onClick="inc_decr4(this.checked);"/>22</br><input name="text_qte" type="checkbox" onClick="inc_decr4(this.checked);" />23</br><input name="text_qte" type="checkbox" onClick="inc_decr4(this.checked);" />24</br></div>
<div id="div-cause4" style="display:none">Ben y a rien hi hi</div>
</td>

</tr>


le soucis maintenant c'est quand je sauvegarde mon formulaire, quand je veux aller vers la liste de checkbox que j'ai coché. Les cases que j'ai coché ne sont plus visibles.
Svp si quelqu'un veut bien me filer un coup de main. comment pourrais je sauvegarder les données de mon div pour l'appeler après la sauvegarde?

vendredi 14 août 2009 à 10:40:17 | Re : lier une liste déroulante à une liste de checkbox

singulier

Salut.

Pour ton probleme de preremplissage il faut que tu le fasse en php.

Je suppose que tu va envoyer ton formulaire a un fichier php pour recuperer les donnees
dans ce cas avec des variables $_SESSION tu peux recuperer a afficher les champs qui avaient ete saisis.

vendredi 14 août 2009 à 12:43:55 | Re : lier une liste déroulante à une liste de checkbox

Bul3

Membre Club


vous ne m'avez pas répondu, mais si c'est suite
à l'envoi du formulaire, vous devez le faire
coté serveur.
vous pouvez faire ce que vous voulez coté javascript,
mais part mémoriser dans un cookie l'état, ce qui
serait absurde, pas de moyens

@singulier, même sans $_session ... je pense

if (isset($_post['c1']) $s='checked="checked"';
else $s='';
<input type="checkbox" value="c1"
name="c1" <?php echo $s;?> />
et|ou pour|sur les option si nécessaire



vendredi 14 août 2009 à 13:18:19 | Re : lier une liste déroulante à une liste de checkbox

Bul3

Membre Club

il fallait bien sûr lire
<?php
if (isset($_POST['c1']) $s='checked="checked"';
else $s='';
?>
<input type="checkbox" value="c1"
name="c1" <?php echo $s;?> />

vendredi 14 août 2009 à 14:01:40 | Re : lier une liste déroulante à une liste de checkbox

singulier

Je suis d'accord avec bul3

Pour le peremplissage il faut le faire en php (c'est plus simple) l'avantage de passer par des variables $_SESSION[] c'est que tes champs seronts prerempli meme apres un rechargement ou pares avoir visite d'autre page(et si tu passe par un script php dans un fichier separer)

voila un formulaire que j'ai fait qui semble correspondre ??
formulaire.

vendredi 14 août 2009 à 14:14:19 | Re : lier une liste déroulante à une liste de checkbox

Bul3

Membre Club


singulier à raison

>>après avoir visite d'autre page
si on veut cela, c'est indispensable

>>il faut le faire en php (c'est plus simple)
ce qui est sûr c'est que le langage sur le
le serveur dispose de tout pour le faire
et que gérer cela coté client serait,
au minimum, redondant

vendredi 14 août 2009 à 15:46:44 | Re : lier une liste déroulante à une liste de checkbox

nina599

En fait j'ai pas bouton envoyer dans le formulaire. en fait c'est un formulaire qui vient se greffer dans une application existante(développé à la base du framework joomla). Et donc il n'y a pas le mm mécanisme de post. C'est pour ça que je n'arrive pas à mettre en place ce que vous m'avez proposé
En fait là je veux récupèrer la valeur des cases cochés pour les stocker dans la base. les mettre dans un array. et puis dans mes checkbox mettre une condition en php avec array_in() pour vérifier si la valeur d'un checkbox existe dans le array cela voudrait dire qu'elle a été cochée et me permettrait de l'afficher cochée.

Code PHP :

$destinataires=split(";",$array_case);//je veux mettre dans $array_case la valeur des //cases que j'ai coché

echo "<div id=\"div-cause1\" style=\"display:none\">";
while ($db_u->next_record()) {
?>


<?php $db_u->sp("name") ?> <input type="checkbox" value="<?php echo $db_u->f("id"); ?>"onClick="inc_decr2(this.checked);" name="__cbu-<?php $db_u->sp("id") ?>" <?php if (in_array($db_u->f("id"),$destinataires)) echo "checked"; ?>/>


<?php
}
echo "</div>";

je veux mettre dans $array_case la valeur des cases que j'ai coché comment faire?merci

vendredi 14 août 2009 à 16:00:48 | Re : lier une liste déroulante à une liste de checkbox

singulier

Desolé mais je ne comprend pas bien.

Peux tu faire un lien sur ta page et mettre son code.


1 2

Cette discussion est classée dans : code, checkbox, liste, cases, déroulante


Répondre à ce message

Sujets en rapport avec ce message

lier une liste de checkbox (case à cocher) à une liste déroulante [ par nina599 ] Bonjour, Après avoir chercher longtemps chez notre ami google sans trouver de piste je remets entre vos mains mon soucis espérant que quelqu'un y jett checkbox affiche une liste déroulante [ par nicotech ] Bonjour/Bonsoir je vous explique mon petit problème qui me prend la tête, j'ai plusieurs checkbox qui quand je les coches doivent chacune afficher le afficher une liste déroulante en cliquant sur un input [ par lsamsoumal ] Bonjour tout le monde je suis débutante en javascript et je cherche depuis le début de la journée à résoudre mon problème sans résultat!! En fait je d récupérer deux valeurs dans liste déroulante [ par orionis1 ] Bonjour à tous, Je souhaiterais récupérer deux valeurs dans une liste déroulante. je charge celle-ci avec l'id et la valeur des lignes d'une table. J accéder à la value d'une liste déroulante en javascript [ par HF974 ] Bonjour , je voudrais accéder à la value d'une liste déroulante en javascript Je m'explique , j'ai une liste déroulante qui correspond à des départe rajout dans une liste déroulante [ par onylink ] Bonjour, J'aurai aimé dans une liste déroulante avoir la possibilité d'ajout une nouvelle valeur. [B]Je m'explique : [/B][U]Dans un formulaire :[/ Problème de liste déroulante [ par mikeV ] Bonjour j'ai un problème avec mon code, j'ai une liste déroulante et je voudrais que quand je séléctionne le premier élément de la liste il m'affiche Liste déroulante [ par auremy ] Bonjour,J'aimerais créer une liste déroulante, pour que lorsque l'utilisateur cliques sur un choix de la liste, une nouvelle page se charge. J'ai pour Liste déroulante [ par mickaelpignier ] Bonjour je suis tres novice en javascript!!Voila je cherhce a enchainer des liste déroulantes ds la mem pageLa premier contien des utilisateurs , la d Style différent dans une liste déroulante [ par salley ] Bonjour tous le monde,J'aimerais savoir comment appliquer un style different pour chaque selection de ma liste deroulante.J'ai essayer bien sur d'ajo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales