Checkboxes et rechargement de la page

Eléphanteau du PHP | 14 Messages

27 déc. 2005, 17:12

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 déc. 2005, 23:20

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 14 Messages

28 déc. 2005, 14:05

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 ...

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

28 déc. 2005, 14:29

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).

Eléphanteau du PHP | 14 Messages

28 déc. 2005, 15:10

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

Eléphanteau du PHP | 14 Messages

28 déc. 2005, 18:28

Salut,

tu y étais pas loin dans ton code Javascript:

Code : Tout sélectionner

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