Question sur php

bonjour

peut on en php transformer une variable (ex $nom)en un tableau

.$nom.[]

Car en fait je voudrai me servir de ca pour ma fonction qui creer les cases a cocher.

(pour l'instant le code existant utilise une constante:prim[] et donc il n'y a pas de différenciation pour les différents champs).

7 réponses

  1. Contributeur
    Bon : Si tu veux transformer un variable en tableau faut changer de méthode :
    si tu fais :
    $nom."[] avec $nom qui vaut caca, tu ne va pas faire le tableau caca[] mais un chaine de caractère "caca[]".

    Mais ca à la place de ce que tu as mis, si ca marche pas, c'est que l'erreur est ailleur.

    <?php
    echo "<input type=checkbox nom=\"".$nom."[]\" value=\"".$val."\">;
    ?>
    0
    1. Mais pourtant quand tu veux récuperer plusieurs valeurs de checkbox tu met dans ton code:
      <input........nom=tab[] ....>

      sans index dans ton tableau (en tout cas il me semble)
      0
      1. ... j'ai pas tout compris, mais je pense qu'il faudrait mettre un index à ton tableau, sinon.. ce n'est pas un tableau. il te faut une variable que tu incrémentes et qui te sert d'index :
        $nom[$index]=...
        0
        1. Ben mon probleme c que ca fonctionne pas quand je fais ca...

          Parcque après je traite tout ca avec une fonction pour inclure les valeurs cochées dans ma table:
          et si je fais ce code ca marche pas:

          if ($action == 'ajouter' || ($action == 'visualiser' && $num_enr == '')){

          if ($status == "ok"){

          $requete = "INSERT INTO $objet set";

          foreach($champs as $cle => $valeur ){

          if(($cle==Nom_Primer && $objet==resultats_analyses)||($cle==Nom_Sequence && $objet==alignements)||($cle==Nom_Tissu && $objet==resultats_analyses)){
          $nom = isset($_POST['nom']) ? $_POST['nom'] : '';

          foreach($nom as $val)
          {
          $valeur.=" $val /";
          } $VLAS .=", $cle='$valeur ' ";
          }
          else{
          $VLAS .=", $cle ='$valeur' ";
          }

          $VLAS=substr( $VLAS, 1);
          $requete .=$VLAS;

          action_simple($requete);
          $action = "visualiser";

          (ce code fonctionne avec le prim[] mais son probleme est que si il y a plusieurs champs de case a cocher dans un meme formulaire alors ca met le resultat sans différentiation entre les champs
          0
          1. Contributeur
            Ou, le nom sera "resultat[]", mais ce sera juste un nom, pas un tableau (d'ailleur tu l'a bien mis dans la propriété nom).

            Je vois pas ton pb ?
            0
            1. Oui mais moi ce que je veux faire c'est utiliser ce que contient $nom

              Je m'explique:

              Pour mon champ resultat $nom=resultat et pour mon champ alignement $nom prnedra la valeur alignement

              Et si j'écrit dans ma fonction case a cocher
              <input type=checkbox nom='.$nom.'[] value=.$val.>
              Est ce que pour mon champs resultat
              j'aurai resultat[]
              0
              1. Contributeur
                Bien sur, j'en ai parler avec Luffy dernièrement dans un post, c'est ce qui est bien avec php, c'est que tu peux faire cela :

                for(int i=0;i<7;i++)
                  $tab[i] = "coucou";  // $tab est un tableau de 
                                                         // chaine de carractère.
                
                
                et plus loin :
                 $tab = 5;   // $tab devien tun entier.
                


                Donc, tu peux faire l'inveers'e, mais attention car le tableau dans l'exemple ci-dessu est alors perdu !

                ++
                0