Catégoriser : un peu d'aide pour une bonne méthode !

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 : Catégoriser : un peu d'aide pour une bonne méthode !

par Sebe » 16 févr. 2007, 16:44

Merci pour l'info.

Néanmoins, je vais éditer un nouveau post dans le forum PHP pour savoir comment en faire pour ne pas devoir retaper systhèmatique le test

Merci

par Ultim4T0m » 16 févr. 2007, 16:30

Bonjour,

toUpperCase() sert à mettre les lettres en majuscule.

Donc dans ce cas :

var1 = 'h';
var2 = 'H';

var1.toUpperCase(); // affiche H
var2.toUpperCase(); // affiche H

Sinon, je ne vois pas vraiment de moyen d'alléger ton code... Tu ne dois pas pouvoir faire beaucoup mieux pour le résultat attendu.

par Sebe » 16 févr. 2007, 14:52

Merci pour ta réponse.

En attendant une réponse, j'avais fait en php ... comme, tu le sous-entend, c'est mieux, je le laisse ainsi sauf que je vais devoir apporter des modifications dans le 'else if' (celles que tu dis !).

J'ai quand même 2 questions en schant que cela restra en php:
- toUpperCase ... à quoi cela correspond (sert)?
- je dois répeter 3 fois la 'fonction' car c'est dans un tableau comment puis-je faire d'autre pour alléger mon code ?

Merci pour le coup de main

par Ryle » 16 févr. 2007, 13:13

Ta fonction me parait plutot bonne.. on peut améliorer ici ou là avec un toUpperCase, et retirer les test implicites :
switch (sexe.toUpperCase()) { 
   case 'H' : // test uniquement en majuscule
    if (age =< 19)
        cat = 'EH'; 
    else if (age =< 39) // puisqu'on est dans le else, l'age est forcément supérieur à 19
         cat = 'SE'; 
    else if (age =< 49) // idem, else donc forcément supérieur à 39
         cat = 'V1'; 
    else if (age =< 59) 
         cat = 'V2'; 
    else if (age =< 69) 
         cat = 'V3'; 
    else if (age =< 79)
         cat = 'V4'; 
    else if (age =< 89)
         cat = 'V5'; 
    else
         cat = ' '; 

   break;
...
  return cat; // et tu renvoi la valeur obtenue 
Si ma fonction est correcte et que ma méthode pour récupérer les variables l'est aussi, comment renvoyer la valeur de la fonction en sachant que ce n'est pas dans un formulaire !
Comment ça, ce n'est pas dans un formulaire ? Elle est où cette fonction ? quand est-ce que tu l'appelles ? d'où viennent les arguments si ce n'est pas d'un formulaire ?
Pourquoi ne pas pouvoir faire un input hidden (ou text, ou un span, ou autre selon l'usage) dans lequel tu stockes la valeur retournée par ta fonction pour l'envoyer au serveur ?

Pourquoi ne pas le faire en php ? en js tu n'as aucune certitude sur les données que tu vas récupérer...

Catégoriser : un peu d'aide pour une bonne méthode !

par Sebe » 15 févr. 2007, 20:17

Bonjour,

Je recherche la façon d'interpréter une catégorie en fonction de l'âge et du sexe d'une personne (ex: -19 & H = EH, -19 & F = ED, [20 -> 39] & H = SE, [20 -> 34] & F = D, etc ...) ... j'ai donc pensé à une fonction JS :

Code : Tout sélectionner

function categorie (age, sexe) { alert ("Sexe du sociètaire " + sexe); alert ("Age du sociètaire " + age); switch (sexe){ case 'h' || 'H': if (age =< 19){ cat = 'EH'; }else if (age > 20 AND age =< 39){ cat = 'SE'; }else if (age > 39 AND age =< 49){ cat = 'V1'; }else if (age > 49 AND age =< 59){ cat = 'V2'; }else if (age > 59 AND age =< 69){ cat = 'V3'; }else if (age > 69 AND age =< 79){ cat = 'V4'; }else if (age > 79 AND age =< 89){ cat = 'V5'; }else{ cat = ' '; }; break; case 'f' || 'F': if (age =< 19){ cat= 'ED'; }else if (age > 19 AND age =< 34){ cat = 'D'; }else if (age > 34 AND age =< 44){ cat = 'A1'; }else if (age > 44 AND age =< 54){ cat = 'A2'; }else if (age > 54 AND age =< 64){ cat = 'A3'; }else if (age > 64 AND age =< 74){ cat = 'A4'; }else if (age > 74 AND age =< 84){ cat = 'A5'; }else{ cat = ' '; }; break; default: cat = '**'; break; } }
Ma fonction est-elle bonne ? N'y a-t-il pas moyen de l'améliorer?

Dans mon code HTML, je récupére la valeur des champs de cette manière :
<input name="sexe" type="hidden" id="sexe" value="<?php echo $sexe;?>" />
<input name="age" type="hidden" id="age" value="<?php echo $age;?>" />
Si ma fonction est correcte et que ma méthode pour récupérer les variables l'est aussi, comment renvoyer la valeur de la fonction en sachant que ce n'est pas dans un formulaire !

Merci