selection du mois en cours dans menu déroulant

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 : selection du mois en cours dans menu déroulant

par dunbar » 25 août 2008, 16:15

Bon, ça y est, c'est trouvé !!!!!!

Rien de grave, c'est juste une histoire de guillemets. Voici le code pour ceux que ça interesse:
Euh...

Quand je t ai dit :

il faut que les arguments de strcmp soient des chaines de caractères...
06 n'est pas équivalent à "06"...


c'était un peu exactement ca...
Effectivement il aurait du prendre la peine de te lire tu lui avait donner la solution, comme dit CYRANO il ne faut pas s'attendre à des retours :wink:

par guilt92 » 25 août 2008, 14:41

Bon, ça y est, c'est trouvé !!!!!!

Rien de grave, c'est juste une histoire de guillemets. Voici le code pour ceux que ça interesse:
Euh...

Quand je t ai dit :

il faut que les arguments de strcmp soient des chaines de caractères...
06 n'est pas équivalent à "06"...


c'était un peu exactement ca...

par Invité » 22 août 2008, 21:05

Bon, ça y est, c'est trouvé !!!!!!

Rien de grave, c'est juste une histoire de guillemets. Voici le code pour ceux que ça interesse:

En fait au lieu de mettre:

if (!(strcmp(06, $date1))) on met: if (!(strcmp("06", $date1))) (des guillemets pour 06).

Grand merci à "Sabotage" du forum www.developpez.net !

A bientot!

www.lancelotxp.com

par Invité » 22 août 2008, 20:49

Merci de vos réponses, mais je n'arrive pas à inclures aucunes d'elles dans mon projet.

En fait, dans le menu déroulant, la valeur est affiché en chiffre et non en texte:

01 pour janvier
02 pour février etc...

Par contre l'etiquette est affichée en texte, juste pour l'utilisateur.

Comme je le disait, mon script fonctionne avec le jour $date1 = date("d"), mais PAS le mois NI l'année, c'est à dire si j'utilise $date1 = date("m") pour le mois, et $date1 = date("y") pour l'année.


Si vous avez un editeur php (dreamweaver comme moi par ex), faites un copier-coller de mon code, et testez le. Vous verrez le problème que je rencontre (juste au cas où je n'arrive pas à m'expliquer lol).

Merci encore!

par guilt92 » 22 août 2008, 17:28

Salut,
guilt92 pourrais m'enlever un doute stp ceci

Code : Tout sélectionner

value="06" est exact et va transmettre une valeur 06
Quand a
value =06 est une erreur de syntaxe
En effet la premiere syntaxe est correcte et pas la seconde. Les arguments doivent etre des chaines de caractères.
Par contre le code ne va pas générer d'erreur, et dans certaines circonstances ca va même marcher, si il n y a pas un zéro devant :
echo strcmp(6,"6"); //affiche 0, ca marche
Mais c'est pas correct ;)

par dunbar » 22 août 2008, 16:34

Salut,
Pourquoi ne pas faire comme ceci :?:
<?php

$date1 = date('n');


$date_mois = array(	1 	=> 'Janvier',
					2 	=> 'Février',
					3 	=> 'Mars',
					4 	=> 'Avril',
					5 	=> 'Mai',
					6 	=> 'Juin',
					7 	=> 'Juillet',
					8 	=> 'Août',
					9 	=> 'Septembre',
					10 	=> 'Octobre',
					11 	=> 'Novembre',
					12 	=> 'Décembre');
?>
<form name="form1" method="post" action="">
  <label>
  <select name="mois" id="mois">
    <option selected="selected"><?php echo $date_mois[date('n')]; ?></option>
    <option value="<?php $date_mois[date('n')-1];?>" ><?php echo $date_mois[date('n')-1] ?></option>
    <option value="<?php $date_mois[date('n')-2];?>" ><?php echo $date_mois[date('n')-2] ?></option>
    <option value="<?php $date_mois[date('n')-3];?>" ><?php echo $date_mois[date('n')-3] ?></option>
  </select>
  </label>
</form>

guilt92 pourrais m'enlever un doute stp ceci

Code : Tout sélectionner

value="06" est exact et va transmettre une valeur 06
Quand a
value =06 est une erreur de syntaxe

par guilt92 » 22 août 2008, 15:22

En lisant la documentation, la fonction strcmp retourne un entier et non un booléen. En modifiant tes 3 conditions en conséquence, cela devrait mieux fonctionner.
On peut effectuer l'opération avec un int sachant que strcmp renvoie 0 si les chaines sont égales, ainsi if(!strcmp("a","a")) fonctionne très bien.

En revanche, ton problème c'est de comparer un nombre avec une chaine de caractère, il faut que les arguments de strcmp soient des chaines de caractères...

06 n'est pas équivalent à "06"...

par Alkann » 22 août 2008, 15:06

En lisant la documentation, la fonction strcmp retourne un entier et non un booléen. En modifiant tes 3 conditions en conséquence, cela devrait mieux fonctionner.

selection du mois en cours dans menu déroulant

par lancelotxp » 22 août 2008, 14:58

Bonjour à tous,
Après de longues recherches sur le net et tests chez moi sans réussites, je vous expose mon probleme en espérant une solution.

J'ai un formulaire d'insertion, avec la date du mois en menu déroulant. Ce que je voudrais, c'est que ce soit le mois en cours qui soit automatiquement selectionné par défaut dans ce menu.

Voici donc mon petti code:

<?php $date1 = date("m"); ?>
<form name="form1" method="post" action="">
  <label>
  <select name="mois" id="mois">
    <option value="06" <?php if (!(strcmp(06, $date1))) {echo "selected=\"selected\"";} ?>>juin</option>
    <option value="07" <?php if (!(strcmp(07, $date1))) {echo "selected=\"selected\"";} ?>>juillet</option>
    <option value="08" <?php if (!(strcmp(08, $date1))) {echo "selected=\"selected\"";} ?>>aout</option>
  </select>
  </label>
</form>
PROBLEME: ne fonctionne pas.

Je précise que si je modifie la valeur de mois pour selectionner le jour courant --- $date1 = date("m") ---, là ça fonctionne parfaitement! Il n'y a que sur la selection du mois et de l'année en cours que ça ne fonctionne pas.

Merci par avance de votra aider, à ceux qui savent.