Nous sommes actuellement le 12 Juil 2026, 04:06

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 6 message(s) ] 
Auteur Message
 Sujet du message: Où est le problème??? [PHP]
MessagePublié: 18 Oct 2003, 09:44 
Hors-ligne
Régulier
Régulier

Inscription : 05 Fév 2002, 22:00
Message(s) : 489
Bonjour,

Je recois des valeur d'un form donc les champs porte un # de 20 à 30.

Je veux savoir si un de ces champs (hidden) a comme valeur "1".

J'ai fais un if pour vérifier, et aucun n'a la valeur "1", mais quand je veux faire un "if" plus rapide, je fais ceci

Code :
if(($_POST[20] || $_POST[21] || $_POST[22] || $_POST[23] || $_POST[24] || $_POST[25] || $_POST[26] || $_POST[27] || $_POST[28] || $_POST[29]) == "1")
{
   echo "ok";   
}
else
{
   echo $_POST[28];
}


Et là, il me dit qu'un de ces champs a comme valeur "1", ce qui est faux...

Mon problème est dans la formulation du "if", mais où? je cherche et je ne trouve pas...

Pouvez-vous m'aider s.v.p.?

Merci

Mathieu

_________________
-------------------
Mathieu Lessard

"Toute grande guerre se gagne d'abord par de petits coups d'épée"


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 18 Oct 2003, 11:04 
Hors-ligne
Fidèle
Fidèle

Inscription : 06 Jan 2003, 19:14
Message(s) : 689
Je comprends pas trop ce que tu veux faire, mais moi j'écrirais == 1 après chaque $_post[xx]. Peut-être qu'il ne faut pas mettre les guillements pour 1.

if ($_POST[21] == 1 || $_POST[22] == 1 || ...)

mais c'est pas très efficace comme code ça..., faudrait que tu fasses une boucle for, beaucoup plus simple ;)


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 18 Oct 2003, 18:01 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 19 Fév 2002, 18:51
Message(s) : 34
Localisation : Québec
Effectivement tu dois répéter le == 1 à chaque condition simple. Ce que le programme fait présentement, c'est de vérifier si au moins un champ est non-nul (donc qu'il existe). Une condition retourne vrai ou faux, ou bien 1 ou 0, qui est ensuite comparé à l'autre 1. Donc, en résumé, ta condition est "(Est ce qu'un champ est non-nul) == vrai" pour le moment
En faisant des == 1 partout, il va plutôt comparer la valeur de chaque variable et déterminer si au moins une est égale à 1


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 19 Oct 2003, 10:10 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 11:31
Message(s) : 811
Localisation : Still on Mars
EN faite ca vas verifier si $_POST[X] est egal a 1 ....

Faire ceci me parrait mieux et ca parle par soi-meme.

Code :
if (!empty($_POST['X']) || !empty($_POST[y])) ...

_________________
Pro_PHP

La Conference PHP Québec 2008
La communauté PHP Québec


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 19 Oct 2003, 20:44 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 19 Fév 2002, 18:51
Message(s) : 34
Localisation : Québec
Non, ce n'est pas exactement la même chose. Si $_POST[X] est égal à "123", la condition va retourner faux, alors qu'avec empty, cela retournerait vrai. Mais tout dépend de ce que tu veux faire. Est-ce que tu veux vérifier si ton hidden existe, ou bien s'il est vraiment à "1"?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Oct 2003, 09:28 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 11 Mars 2002, 21:22
Message(s) : 239
Localisation : Montréal
Euh... il me semble que le nom d'un champ ne peut commencer par une chiffre.
Pour vérifier si tes champs existent ET si la valeur est 1 ET ce, peu importe le nombre de champ (tu n'as quà changer les paramètre du while), tu devrais plutôt faire ceci
Code :
$i = 20;
$condition = true;

while( $i < 31 && $condition = true )
{     $nom_du_champ = "champ_" .$i;
      $condition = ( isset($_POST[$nom_du_champ]) && $_POST[$nom_du_champ] == 1) ? false : true ;
      $i++;
}

if($condition)
{
    // Si aucun champ est à 1
}
else
{
    // Si un champ est à 1
}

Le nom de tes champs devra être "champ_20" et "champ_21" etc...

_________________
GET FIREFOX
GET THUNDERBIRD


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 6 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site