IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Conditions imbriquées (checkbox/textfield)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut Conditions imbriquées (checkbox/textfield)
    Bonjour,

    je possède un formulaire PHP contenant environ une dizaine de checkbox et le même nombre de textfield (en fait ce sont des champs de type file, mais je m'en sert comme textfield en ne récupérant que le nom du fichier sélectionné par l'utilisateur). Ca marche très bien comme ça

    Le soucis c'est que lorsque l'utilisateur clique sur le bouton valider du formulaire, je souhaiterai que celà ne renvoit quelque chose que si la checkbox et son fichier sont cochés (donc je dis bien les deux!).

    Voilà le genre de code que j'ai (HTML):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <table>
    <tr>
    	<td id="libelle">Sud Est</td>
    	<td><input id="zonefile" type="file" name="monfichier[11]" /></td>
    	<td><input type="checkbox" name="choix[11]" value="se"/></td>
    	<td></td>
    </tr>
    <tr>
    	<td id="libelle">Sud Ouest</td>
    	<td><input id="zonefile" type="file" name="monfichier[12]" /></td>
    	<td><input type="checkbox" name="choix[12]" value="idf"/></td>
    	<td></td>
    </tr>
    .
    .
    . etc pour environ 10 checkbox/textfield
    </table>
    Mon idée est donc (une fois le formulaire envoyé) de parcourir tous les "textfields", et de regarder à chaque fois pour le textfield courant si la case qui lui est associé est cochée. Voici le code que j'ai fait (PHP) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for($i=1;$i<=count($_POST["monfichier"]);$i++){  // parcours de la totalité des checkbox
    	if(isset($_POST["choix"][$i]) && isset($_POST["monfichier"][$i])){             // si la checkbox $i est cochée et si un nom de fichier lui est attribué
     
    //traitements
     
                 }//fin du if
    }//fin du for
    Le problème c'est que même si je ne clique que sur une checkbox (et pas son fichier associé), les traitements se font (mais ne fonctionnent pas bien étant donné que le retour du textfield est mauvais)..

    En revanche, si je ne sélectionne qu'un textfield (et pas sa checkbox associée), les traitements ne se font pas (normal donc).

    Bien évidemment, si je clique sur les deux, tout marche niquel

    Ma question est donc : pourquoi ce test sur les groupes checkbox/textfield ne fonctionne pas??

    Merci à tous

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si je traduis bien, ton traitement se fiche éperdument de si le textfield est ou n'est pas renseigné. Vu que ce sont des champs file, peut-être devrais-tu tester $_FILES['monfichier'][$i] et non $_POST['monfichier'][$i] ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut
    Citation Envoyé par Celira Voir le message
    Si je traduis bien, ton traitement se fiche éperdument de si le textfield est ou n'est pas renseigné. Vu que ce sont des champs file, peut-être devrais-tu tester $_FILES['monfichier'][$i] et non $_POST['monfichier'][$i] ?
    Hum donc le code que j'ai fait est bon alors.. Mais c'est bien $_file qu'il faudrait utiliser dans ce cas.. Ok je prends note et je vais tester ça
    Par contre je ne suis pas sûr que ça peut marcher, étant donné que $_FILE ne donne des infos que sur un fichier uploadé (hors ici je n'uploade rien, je ne fait que récupérer le lien du fichier grâce au "$_POST['monfichier']"..
    Mais bon je vais tester ça, merci pour ta réponse

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour,
    déjà, changez isset par empty
    isset()Détermine si une variable est affectée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Evalué à vrai car $var est défini
    if (isset($var)) {
      echo '$var est définie même si elle est vide';
    }
    empty()Détermine si une variable contient une valeur non nulle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Evalué à vrai car $var est vide
    if (empty($var)) {
      echo '$var vaut soit 0, vide, ou pas définie du tout';
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut
    Hum très intéressante cette fonction empty
    Je vais tester toutes vos solutions
    Merci à tous pour le coup de main

Discussions similaires

  1. [XL-2007] Conditions imbriquées difficiles
    Par dodo28 dans le forum Excel
    Réponses: 1
    Dernier message: 25/08/2009, 08h38
  2. Condition avec Checkbox
    Par mickou64 dans le forum MFC
    Réponses: 16
    Dernier message: 30/01/2009, 14h06
  3. Comment formuler les conditions imbriquées
    Par itzik92 dans le forum IHM
    Réponses: 2
    Dernier message: 30/09/2008, 23h16
  4. Somme sur conditions imbriquée dans une requête
    Par aleximan dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/01/2008, 18h05
  5. [XHTML] condition sur checkbox
    Par bogsy15 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/08/2006, 08h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo