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

PHP & Base de données Discussion :

en tableau array [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut en tableau array
    Bonjour.

    On m'a suggéré de mettre en tableau mon code que j'ai résumé à ceci :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php 
     
    $vop_a = "item 1";  // sera affiché dans le formulaire et affiché si sélectionné             
    $vop_b = "item 2"; //...
    $vop_c = "item 3"; //...
     
    // traitement
    $op_z  = (isset($_POST['op_a'])) ? $_POST['op_a']."\r\n" : null;
    $op_z .= (isset($_POST['op_b'])) ? $_POST['op_b']."\r\n" : null;
    $op_z .= (isset($_POST['op_c'])) ? $_POST['op_c']."\r\n" : null;
     
    echo $op_z.'<br>';
     
    ?>
     
    <form action="tab.php" method="POST">
        <fieldset>
        <legend><strong>Nous contacter</strong></legend><p>
     
            <table border="0">
            <tr>
            <td colspan="4">
              <div class="opz">
                <input type="checkbox" name="op_a" id="op_a" value="<?php echo $vop_a; ?>" /> <label for="op_a"><?php echo $vop_a; ?></label><br><br>
                <input type="checkbox" name="op_b" id="op_b" value="<?php echo $vop_b; ?>" /> <label for="op_b"><?php echo $vop_b; ?></label><br>
                <input type="checkbox" name="op_c" id="op_c" value="<?php echo $vop_c; ?>" /> <label for="op_c"><?php echo $vop_c; ?></label><br>
              </div>
            </td>
            </tr>
            <tr>
            <td width="30%" align="center">
                <input style="width:66px" type="submit" name="envoye" value="Envoyer" />
                <input style="width:66px" type="reset" name="annuler" value="Annuler" />
            </td>
            </tr>
            </table>
     
        </fieldset>
    </form>
    Les options (items) doivent être affiché dans un courriel, mais pour les fins de test, en affichage écran.

    items doit être cumulatif, c'est pour cela les ".=".

    J'ai une base simple des tableaux.
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par dancom5 Voir le message
    On m'a suggéré de mettre en tableau mon code que j'ai résumé à ceci :
    Tu as mal résumé
    Tu aurais du mettre en tableau ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <td colspan="4">
       <div class="opz">
          <input type="checkbox" name="opz[]" id="op_a" value="<?php echo $vop_a; ?>" /> <label for="op_a"><?php echo $vop_a; ?></label><br><br>
          <input type="checkbox" name="opz[]" id="op_b" value="<?php echo $vop_b; ?>" /> <label for="op_b"><?php echo $vop_b; ?></label><br>
          <input type="checkbox" name="opz[]" id="op_c" value="<?php echo $vop_c; ?>" /> <label for="op_c"><?php echo $vop_c; ?></label><br>
       </div>
    </td>
    Et du coup ton traitement se résume à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // traitement
    $opz = implode("\r\n", $_POST['opz']);

  3. #3
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Merci.

    Je croyais que je devais aussi transformer en array mes variables et les input.

    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
    19
     
    <?php
    $vop_a = "item 1";
    $vop_b = "item 2";
    $vop_c = "item 3";
     
    $opz = implode("\r\n", $_POST['opz']);
     
    print_r($opz);
    ?>
     
    <form action="tab.php" method="POST">
    	<input type="checkbox" name="opz[]" id="op_a" value="<?php echo $vop_a; ?>" /> <label for="op_a"><?php echo $vop_a; ?></label><br><br>
    	<input type="checkbox" name="opz[]" id="op_b" value="<?php echo $vop_b; ?>" /> <label for="op_b"><?php echo $vop_b; ?></label><br>
    	<input type="checkbox" name="opz[]" id="op_c" value="<?php echo $vop_c; ?>" /> <label for="op_c"><?php echo $vop_c; ?></label><br>
     
    	<input style="width:66px" type="submit" name="envoye" value="Envoyer" />
    	<input style="width:66px" type="reset" name="annuler" value="Annuler" />
    </form>
    Je me demande s'il y aurait pas moyen de faire en sorte qu'il ait le nombre de INPUT en fonction du nombre de variable et ce automatiquement.

    Exemple : $var1, $var2 va générer input1 et input2

  4. #4
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Je pense avoir compris quelque chose.

    Si j'ai défini mes variables au début, c'est que je ne voulais pas les définir directement dans value="" du formulaire. Autrement, j'aurais moins de code.

    C'est apprécié, merci pour l'aide

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par dancom5 Voir le message
    Je me demande s'il y aurait pas moyen de faire en sorte qu'il ait le nombre de INPUT en fonction du nombre de variable et ce automatiquement.

    Exemple : $var1, $var2 va générer input1 et input2
    Bah si un tableau et foreach() : un court exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $data = array('Item 1', 'Item 2');
    $inputs = array();
    foreach($data as $item) {
       $inputs[] = '<input type="checkbox" name="opz[]" value="'.$item.'" />';
    }
    T'arrêtes pas à la présentation, ce n'est qu'une piste.

  6. #6
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Je l'ai pas correct. Ça m'affiche pas le contenu à cocher.

    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
    19
    20
    21
    22
    23
    <?php
     
    $data = array('Item 1', 'Item 2');
     
    if(isset($_POST['opz'])){
    $opz = implode("<br>", $_POST['opz']);
     
    echo $opz;
    }
    ?>
     
    <form action="tab.php" method="POST">
    <?php
    $inputs = array();
     
    foreach($data as $item) {
       $inputs[] = '<input type="checkbox" name="opz[]" value="'.$item.'" />';
    }
    ?>
     
    	<input style="width:66px" type="submit" name="envoye" value="Envoyer" />
    	<input style="width:66px" type="reset" name="annuler" value="Annuler" />
    </form>

  7. #7
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Euh, il faut quand même faire echo() à un moment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo implode("\n", $inputs)
    ou tu présentes différemment ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action="tab.php" method="POST">
       <?php foreach($data as $item): ?>
       <input type="checkbox" name="opz[]" value="<?php echo $item; ?>" />
       <?php endforeach; ?>
       <input style="width:66px" type="submit" name="envoye" value="Envoyer" />
       <input style="width:66px" type="reset" name="annuler" value="Annuler" />
    </form>
    Faut quand même phosphorer un peu

  8. #8
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Tien, j'ai réussi :
    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
    19
    20
    21
    22
    23
    24
    25
     
    <?php
     
    $data = array('Item 1', 'Item 2');
     
    if(isset($_POST['opz'])){
    $opz = implode("<br>", $_POST['opz']);
     
    echo $opz;
    }
    ?>
     
    <form action="tab.php" method="POST">
    <?php
    $inputs = array();
     
    foreach($data as $item) {
       $inputs[] = $item.' <input type="checkbox" name="opz[]" value="'.$item.'" />';
    }
    echo implode("<br>", $inputs);
     
    ?>
    	<input type="submit" name="envoye" value="Envoyer" />
    	<input type="reset" name="annuler" value="Annuler" />
    </form>
    merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/04/2016, 00h52
  2. [Tableaux] Trier un tableau [array]
    Par clemsouz dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2006, 13h33
  3. [Tableaux] Problème de valeur dans un tableau (array)
    Par Flushovsky dans le forum Langage
    Réponses: 15
    Dernier message: 24/03/2006, 13h56
  4. Tableau(Array) sans taill
    Par krfa1 dans le forum ASP
    Réponses: 4
    Dernier message: 21/09/2005, 22h31
  5. tableau array
    Par laclac dans le forum Langage
    Réponses: 8
    Dernier message: 01/09/2005, 11h04

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