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 :

[Tableaux] ajout d'éléments dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut [Tableaux] ajout d'éléments dans un tableau
    bonjour,

    voilà j'aimerai ajouter les valeurs des mes checkbox dans un tableau :

    je crée donc un tableau et j'utilise la fonction array_push pour cela, mais le résultat n'est pas vraiment ce que je souhaite:
    mon code :

    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
     
    $panier = array();
    // mes checkbox
     
     while ($res=mysql_fetch_array($data))
    {
     
       echo"<tr>
                <td width='177'>".$res['categorie']."</td>
                <td width='284'>".$res['description']."</td>
                <td width='278'>".$res['prix']."</td>
                <td width='278'><input type='checkbox' name='choix[]' value=".$res['id']."></td>
            </tr>";
     
     }
     if (isset($_POST['choix']))
     {
     foreach ($_POST['choix'] as $val)
     {
     $panier = array_push($panier,$val);
     echo "vous avez choisi : ".$val.'<br>';
     }
     
     } ?>
    seulement j'ai une erreur : First argument should be an array in

    moi ce que je veux c'est $panier =("mon choix 1","mon choix 2");
    dois-je utiliser array push() ou bien il existe une autre fonction ?

    merci d'avance

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Non c'est la bonne fonction. L'erreur te dit que le premier élément doit être un tableau. Il y a surement une erreur lors de la définition de $panier. Si tu le déplaces et que tu le mets dans le if ca donne quoi ?

  3. #3
    Membre éclairé
    Avatar de jc_cornic
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    623
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 623
    Points : 823
    Points
    823
    Par défaut
    Salut, j'ai eu le meme probleme il ny a pas longtemps... Pour y remédier, j'initialisait mon tableau puis je lui faisait un petit pop avant les push

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    // Init, je n'y passe qu'un fois...
    $diaporamas = array(-1);
     
    // un petit pop pour le vider
    array_pop($diaporamas);
     
     
    //et les push dont j'avais besoin...
    while ($i < getNbDiaporamas())
      array_push($diaporamas, $nomLisible);
    ?>
    Je trouve cela étrange, c comme si l'init

    $tab = array();

    ne lui plaisait pas et qu'il ne considérait pas ca comme un tableau...

    ++
    JC
    VELOMASTER, idée cadeau ? un jeu de plateau

    Hummmmm, des donuts !!!!

    Merci de penser à , et et aussi

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Citation Envoyé par Kerod
    Non c'est la bonne fonction. L'erreur te dit que le premier élément doit être un tableau. Il y a surement une erreur lors de la définition de $panier. Si tu le déplaces et que tu le mets dans le if ca donne quoi ?
    étrange ... si je mets dans le if ça fonctionne par contre ça me donne :

    vous avez choisi :
    vous avez choisi : 5
    vous avez choisi : 6

    donc la première valeur c'est rien du tout....

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Dans ce cas tu as deux solutions :
    1. Faire la méthode dite plus haut, faire un pop ce qui retira le premier élément de l'array.
    2. utiliser la méthode traditionnelle qui est décrite ici : Comment ajouter un élément à un tableau ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    eh bien curieusement j'ai rien changé et ça marche !
    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
     
    // code mis plus haut : 
     
    if ($_SESSION['panier'])
     
    { 
    $panier=$_SESSION['panier'];
     
     }
     
    while ($res=mysql_fetch_array($data))
    {
     
       echo"<tr>
                <td width='177'>".$res['categorie']."</td>
                <td width='284'>".$res['description']."</td>
                <td width='278'>".$res['prix']."</td>
                <td width='278'><input type='checkbox' name='choix[]' value=".$res['description']."></td>
            </tr>";
     
     }
     if (isset($_POST['choix']))
     { if (! isset($panier)) //si c'est la première fois on initialise 
          {
            $panier = array();
         }
       foreach ($_POST['choix'] as $val)
     {
      array_push($panier,$val);
     
      } 
      print_r($panier);
     $nombre = array_count_values($panier);
     $_SESSION['nombre']=$nombre;
    $_SESSION['panier']=$panier;
     
     }
    dernière petite question :
    on dit : if ($_SESSION['panier']) ou if ($_SESSION['panier']==true) ?

    merci ;-)

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je dirais déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isset($_SESSION['panier'])
    qui teste si la variable existe.
    et le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['panier']==true
    si ca la valeur est de type booléen ce qui sert à tester son contenu

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Merci bien

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/05/2009, 13h50
  2. Ajout des éléments dans un tableau de structure
    Par rphenix dans le forum WinDev
    Réponses: 10
    Dernier message: 22/06/2007, 11h34
  3. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  4. [Tableaux] ajout d'élément dans un tableau
    Par maximenet dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2006, 20h24
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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