Page 1 sur 1

Checkboxes et rechargement de la page

Posté : 27 déc. 2005, 17:12
par jckfun
Bonjour tout le monde.

Je souhaite réaliser en javascript/php une routine qui, lorsque l'utilisateur coche les check boxes, redirige celui ci sur la meme page avec en parametres de l'URL certaines valeurs correspondants aux cases cochées.

Cela ne doit pas etre trés difficile, mais je ne parvient pas a le faire.

J'ai réussi a faire cela pour une liste déroulante comme ci desssous:
onclick=''window.location=pagecourante.php?valeur=formulaire.nom_de_ma_checkbox.checked'
Mais qd je le fais pour la checkbox, cela ne passe pas
<select class="choix_liste" name="category" OnChange='window.location=eval("this.options[this.selectedIndex].value")'>
Qq a une idée ?

A bientot et merci d'avance.

Posté : 27 déc. 2005, 23:20
par Truc
Salut,
essaie avec

Code : Tout sélectionner

document.formulaire.nom_de_ma_checkbox.value
a la place de

Code : Tout sélectionner

formulaire.nom_de_ma_checkbox.checked

Posté : 28 déc. 2005, 14:05
par jckfun
Merci beaucoup pour ta réponse.

J'ai essayé comme suit et cela ne fait rien du tout:

Code : Tout sélectionner

<input type="checkbox" name="mnr_old" onClick='window.location=WIP_product_multimodify_scheduleIds_xhtml_WIP.php?test=document.modifmultischedule.mnr_old.value'/>
Je n'observe pas de rafraichissement de la page.
J'ai l'impression que l'évenement onClick n'est pas interprété ...

As tu une idée ?

A bientot ...

Posté : 28 déc. 2005, 14:29
par naholyr
C'est pourtant bien l'évènement onclick qui devrait être gérer, à moins que tu n'utilises un label.
Pour être plus tranquille j'utilise personnellement une fonction qui tourne en parrallèle en arrière-plan et qui scan l'état de mon formulaire pour ce genre d'opérations, exemple dans ton cas :

Code : Tout sélectionner

.... <script type="text/javascript"> var formulaire = document.monformulaire; var etatInitial = formulaire.macheckbox.checked; function verifForm() { var etatCourant = formulaire.macheckbox.checked; if (etatCourant != etatInitial) { // checkbox modifiée, agir en fonction document.location.href = "script.php?value=" + formulaire.macheckbox.value; } else { // R.A.S : on continue de faire le gué setTimeout("verifForm()", 500); } } // lancement de la fonction d'arrière plan, elle va scruter le formulaire // et vérifier les changements toutes les 500 ms verifForm(); </script> </body> </html>
Inconvénient : si l'utilisateur est très rapide, il risque de se faire surprendre par un rechargement de page "après-coup".
Avantage : indépendance totale des évènements (onclick, onchange, & cie).

Posté : 28 déc. 2005, 15:10
par jckfun
Merci beaucoup pour ta réponse !

J'ai utilisé tes conseils, mais je n'observe pas d'évenements toutes les 0.5 secondes.

Je ne comprends pas pourquoi.

Y'a t il des propriétés a mettre pour les checkboxes ?

Voila mon code.

Code : Tout sélectionner

<form id="modifmultischedule" method="post" action="product_multimodify2_scheduleIds_xhtml_WIP.php">

Code : Tout sélectionner

<script type="text/javascript"> var formulaire = document.modifmultischedule; var etatInitial = formulaire.mnr_old.checked; function verifForm() { var etatCourant = formulaire.mnr_old.checked; if (etatCourant != etatInitial) { // checkbox modifiée, agir en fonction document.location.href = "WIP_product_multimodify_scheduleIds_xhtml_WIP.php?value=" + formulaire.mnr_old.value; } else { // R.A.S : on continue de faire le gué setTimeout("verifForm()", 500); } } // lancement de la fonction d'arrière plan, elle va scruter le formulaire // et vérifier les changements toutes les 500 ms verifForm(); </script>


Code : Tout sélectionner

<input type="checkbox" name="mnr_old"/>

Code : Tout sélectionner

<input type="checkbox" name="qtr_old"/>

Code : Tout sélectionner

<input type="checkbox" name="qnr_old"/>

Code : Tout sélectionner

<input type="checkbox" name="mtr_old"/>
Peut etre est ce génant d'avoir implémenté une fonction qui recharge autoimatiquement la page lors du changement d'option de ma liste

Code : Tout sélectionner

<select class="choix_liste" name="category" OnChange='window.location=eval("this.options[this.selectedIndex].value")'> <option value="product_multimodify_scheduleIds_xhtml_WIP.php?categorie=all">Toutes</option> <option selected value="product_multimodify_scheduleIds_xhtml_WIP.php?categorie=<? print "$categorie"; ?> "><? print "$categorie"; ?></option> <? $tableau_propre = array_wo_duplicate_values_simple_node($listing_type, "category"); foreach ($tableau_propre as $categories_ok){ ?> <option value="product_multimodify_scheduleIds_xhtml_WIP.php?categorie=<? print "$categories_ok"; ?>"> <? print "$categories_ok"; ?> </option> <? } ?> </select>
J'avoue que je ne comprends pas tout...

En esperant d'avoir été clair ...

A bientot et merci d'avance

Posté : 28 déc. 2005, 18:28
par solo
Salut,

tu y étais pas loin dans ton code Javascript:

Code : Tout sélectionner

onclick="window.location = 'pagecourante.php?valeur=' + this.value;"
:D