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
    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
    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
        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. 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. ... 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. 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. 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