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 :

Afficher uniquement les cases saisies


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Par défaut Afficher uniquement les cases saisies
    Bonjour tout le monde,

    Je ne sais pas si je suis dans la bonne rubrique, voici ce que j'aimerais faire en php.

    J'ai plusieurs formulaires en php/html avec une page php chargée de regrouper toutes les informations, j'utilise donc des sessions et cela fonctionne bien.

    Sur certaines pages ou j'ai mes formulaires, j'ai des tableaux (avec des textbox) qui font parfois 20 lignes parfois plus. J'affiche également ce tableau dans ma page "resumé". J'aimerais mettre en place un système afin que lorsque l'on écrit rien dans une case du formulaire, que cette case ne soit pas affichée dans la page résumé.

    En gros je n'ai pas envie d'avoir un tableau de 20 lignes dans ma page résumé si seul 5 lignes ont été saisie dans ma page formulaire.

    Comment puis-je faire cela ?


    Merci !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Teste les valeurs avant l'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!empty($_POST['nomchamp']))
    {
    echo $_POST['nomchamp'];
    }

  3. #3
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Salut !

    Je crois que tu ne pourras pas éviter de contrôler la valeur de chaque champ, afin de voir s'ils sont remplis ou non. Si tu as vraiment beaucoup de champs, tu peux faire une boucle comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    // tableau contenant le nom de tous les champs de ton formulaire
    $liste_champs=array("nom","prenom","champs3","champ4"); 
     
    foreach($liste_champs AS $champ) {
     if(isset($_POST[$champ]) AND !empty($_POST[$champ])) {
      echo "<p>".$champ." : ".$_POST[$champ]."</p>";
     }
    }
    ?>
    A++

  4. #4
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Par défaut
    J'ai pensé à utiliser des isset ou des empty mais je ne sais pas si cela peut fonctionner dans mon cas.

    Exemple :

    Formulaire 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tr class="odd">
    	<th class="firstColumn" scope="row">Postes</th>
        <td><?php if(!empty($_SESSION['parc']['txt_1']))
    echo '<input id="txt_1" name="txt_1" size="70" type="text" value="'.$_SESSION['parc']['txt_1'].'" />';
    else
    echo '<input id="txt_1" name="txt_1" size="70" type="text" />';?></td>
    (J'utilise une session afin de garder en mémoire ce que l'utilisateur a saisi)
    J'ai donc un tableau avec plusieurs champs et colonnes, imaginons que l'utilisateur tape le nom d'une machine (variable txt_1) et qu'il n'est qu'une seule machine à rentrer... Dans le tableau du formulaire j'ai créer plusieurs "case" "txt_" au cas ou l'utilisateur ai plusieurs machines à rentrer.

    Dans ma page "resume.php", moi j'ai affiché un tableau avec plusieurs cases mais si l'utilisateur ne tape que le nom d'une seule machines, les autres cases vont restées vide "pour rien".

    resume.php
    :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <tr class="odd">
    	<th class="firstColumn" scope="row">Poste client</th>
        <td><?php echo($_SESSION['parc']['txt_1']);?></td>
    Votre méthode fonctionne t-elle, c'est à dire va t'elle me permettre de ne pas afficher les cases du tableau si rien à été saisi au préalable dans le formulaire ?

  5. #5
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Salut !

    Oui tout à fait. C'est le principe des "If ... else", ou en français, "si ...sinon".

    Tu pourrais avoir quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
    if(isset($_SESSION['parc']['txt_1']) AND !empty($_SESSION['parc']['txt_1'])) {
        echo '<tr class="odd">
        <th class="firstColumn" scope="row">Poste client</th>
        <td>'.$_SESSION['parc']['txt_1'].'</td>
        </tr>';
    }
    ?>
    A+

  6. #6
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Par défaut
    Salut,

    J'ai testé et ça fonctionne bien merci !

    J'ai une dernière question, je souhaiterais afficher un message du style "Expirée" dans la page "resume" si l'utilisateur à cochée une textbox dans la page formulaire mais ça ne fonctionne pas.

    Page résumé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($_SESSION['parc']['idchk_6']) {
        echo '<td> Expirée </td>' ;	}
    	else {
    	echo '<td> OK </td>' ;	}
    Le problème c'est que cette condition m'affiche toujours "Expirée", même quand la case est décochée...

    Page formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td><?php if (!empty($S_SESSION['parc']['idchk_6']))
    echo '<center><input type="checkbox" id="idchk_6" name="idchk_6" onclick="ChangeCouleur(this)" value="'.$_SESSION['parc']['idchk_6'].' " />'; 
    else
    echo '<center><input type="checkbox" id="idchk_6" name="idchk_6" onclick="ChangeCouleur(this)"/>';?></center> </td>
    Merci de votre aide !

  7. #7
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Par défaut
    Personne n'a d'idées ?

Discussions similaires

  1. Quel webpart pour afficher uniquement les sous-sites d'un site?
    Par gracouille dans le forum SharePoint
    Réponses: 0
    Dernier message: 02/06/2008, 19h37
  2. [cURL] Afficher uniquement les entêtes
    Par LordDaedalus dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/02/2008, 22h55
  3. InputQuery n'affichant pas les caractères saisies
    Par netah25 dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2007, 11h03
  4. Réponses: 1
    Dernier message: 12/07/2006, 09h51
  5. Réponses: 4
    Dernier message: 05/07/2006, 21h58

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