definir une valeur pour un script js dans une page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : definir une valeur pour un script js dans une page

par cpnadal » 18 janv. 2006, 20:22

Non en fait la solution que tu propose, j'y ai pensé mais ca sera moins élégant que de laisser l'horaire en permanence. Tant pis et merci beaucoup pour la réponse. :lol:

par Truc » 18 janv. 2006, 20:00

je ne pense pas que ce soit possible de faire une variable globale javascript dans ton cas, c'est à dire avec un echargement de page.

On peut bien déclarer une variable en globale , tout simplement en faisant
variable="contenu";
mais lors du rechargement la variable sera a nouveau réinitialisée avec cette valeur par défaut. Bon je sais pas si ce calendrier nécessite un rechargement ou un simple appel à "Calendar.setup" suffirait (dans ce cas le charabia qui suit est inutile :wink: ).

Ce que tu peux faire c'est passer par une variable php qui prend la valeur de la séléction de la liste déroulante.

récupértion de la valeur de la liste déroulante si elle existe:
$time= isset($_POST['changement_calendrier_match']) ? $_POST['changement_calendrier_match'] : true ;
entre les balises <script>:
<script type="text/javascript">
time=<? echo $time; ?>
</script>
finalement la liste:
<select name="changement_calendrier_match" size="1" onChange="document.form1.submit();">
    <option value=true >Journée Complète</option>
    <option value=false >Match</option>
</select> 

definir une valeur pour un script js dans une page

par cpnadal » 18 janv. 2006, 01:25

Plus bas, je joins le script de la page.

Sur cette page, j'utilise le calendrier qui m'a été suggéré sur ce forum. Je le maitrise bien maintenant. Une option permet d'afficher ou non l'heure.

Cette option doit être activée "true" si l'option "Journée" du selecteur est choisie (option par défaut) et désactivée "false" si l'option "Match" est choisie.

J'ai donc créé une variable 'time' que je change via une fonction appelée avec une propriété 'onclick' des deux options du selecteur. Cette variable est utilisée pour définir l'option d'affichage de l'heure. Seulement, ca fonctionne pas du tout. L'heure s'affiche dans tout les cas. Un petit coup de main?

Code : Tout sélectionner

<html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="CSS/prono-football_general.css" rel="stylesheet" type="text/css"> </head> <!-- calendar stylesheet --> <link rel="stylesheet" type="text/css" media="all" href="./includes/calendar/calendar-win2k-cold-1.css" title="win2k-cold-1" /> <!-- main calendar program --> <script type="text/javascript" src="./includes/calendar/calendar.js"></script> <!-- language for the calendar --> <script type="text/javascript" src="./includes/calendar/lang/calendar-fr.js"></script> <!-- the following script defines the Calendar.setup helper function, which makes adding a calendar a matter of 1 or 2 lines of code. --> <script type="text/javascript" src="./includes/calendar/calendar-setup.js"></script> <SCRIPT LANGUAGE=JavaScript> var time=true; function time_true() { var time=true; parent.frames['mainFrame'].window.location.reload(); } function time_false() { var time=false; parent.frames['mainFrame'].window.location.reload(); } </script> <form method="post" name="form1" action=""> <table align="center"> <input name="declaration_changement_calendrier_journee" type="hidden" value=""> <tr valign="baseline"> <td> <select name="declaration_changement_calendrier_match" size="1"> <option value="0" onClick="time_false()">Journée Complète</option> <option value="1" onClick="time_true()">Match</option> </select> </td> </tr> <tr valign="baseline"> <td nowrap align="right">Date prévue:</td> <td><input type="hidden" name="declaration_changement_calendrier_date_prevue" id="f_date_b" /><span style="background-color: #ff8; cursor: default;" onmouseover="this.style.backgroundColor='#ff0';" onmouseout="this.style.backgroundColor='#ff8';" id="show_b"><input type="text" name="declaration_changement_calendrier_date_prevue_affichee" id="show_b" /></span><button type="reset" id="f_trigger_b">...</button> <script type=text/javascript> Calendar.setup({ inputField : 'f_date_b', // id of the input field ifFormat : '%Y/%m/%d %H:%M', // format of the input field showsTime : time, // will display a time selector button : 'f_trigger_b', // trigger for the calendar (button ID) displayArea : 'show_b', // ID of the span where the date is to be shown daFormat : '%d/%m/%Y %H:%M',// format of the displayed date singleClick : false, // double-click mode step : 1 // show all years in drop-down boxes (instead of every other year as default) }); </script></td> </tr> <tr valign="baseline"> <td nowrap align="right">&nbsp;</td> <td><input type="submit" value="Insérer l'enregistrement"></td> </tr> </table> <input type="hidden" name="declaration_changement_calendrier_utilisateur" value="$_SESSION['utilisateur_id']"> <input type="hidden" name="MM_insert" value="form1"> </form> <p>&nbsp;</p> </body> </html>