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] Variable non reconnue


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut [Tableaux] Variable non reconnue
    bonjour à tous et bonne année 2007!!!

    je viens à vous aujourd'hui car j'ai un petit problème que je n'arrive pas à résoudre (logique n'est ce pas lol)

    je vous explique mon problème
    en faite j'ai dans mon formulaire, le nom d'un champs de type text qui est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type=text name=champ "'.$x.'">
    et dont le $_POST n'est pas reconnu soit l'erreur suivante :
    Notice: Undefined variable: x in ...

    je vous donne mon code en entier :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?
    include ("definitioninfo.php");
    session_start();
    $base=mysql_connect("localhost","root","oui");
     mysql_select_db("bd", $base);
     
     
    if (isset($_POST['champ'] ))
    {
      if (!empty($_POST['champ']))
      {
     
      echo 'champs ancien';
    }
    }
     
    if (isset($_POST['champ "'.$x.'" ']))
    {
      echo 'champs nouvo';
    }
     
     
    if (isset ($_POST['chp']))
    {
      if ($_POST['chp'] == 'ajouter')
      {
     
    $count = $_POST['count']; 
    $nombre = $_POST['nombre']; 
     $jj = $count + $nombre;
     
     
     
     
     for ($x = 0; $x< $jj; $x++)
     {
     
        echo '<table border = 0>';
       echo '<form method="post" action="ajoutchamps2.php">';
      echo '<tr><td> ';
     
      //echo '
      //<table> ';
     
      echo '
    
      <tr>
      <td>
      Nom caracteristique<input type=text name=champ "'.$x.'">
      </td>
      <td>
      Descriptif<textarea name= descriptif"'.$x.'"></textarea>
    
      </td>
      </tr>
       </form>
      </table>';
    }
    }
    }
     
    echo '<table>';
      echo '<form method="post" action="ajoutchamps2.php">';
     
    echo '<tr>
    <td>';
    echo 'Nom caracteristique : <input type="text" name="champ">
    </td>
    <td>
    Descriptif<textarea name="descriptif"></textarea>
    </td>
    </tr>
    <tr>
    <td>';
     
    if (isset ($_POST['count'])) 
    {
     
    echo '<input type="hidden"  name="count" value="'.$jj.'"> ';
    }
    else
    {
      echo '<input type="hidden"  name="count" value=0> ';
    }
     
    echo '<input type="text"  name="nombre" size="1">';
     
    echo '<input type="submit" name="chp" value=ajouter>'
    ;echo '<input type="submit" name="chps" value=inserer>';
    echo '</td></tr> 
    </form>
    </td></tr> ';
    echo '</table>';
    ?>
    je comprends pas pourquoi j'ai cette erreur...
    si quelqu'un pourrait m'expliquer se serait vraiment gentil car je suis completement bloqué..

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    il est chelou ton problèmes...

    en gros, tu veux recupérer champ1, champ2, champ3 etc... ?

    donc soit j'ai rien compris, soit il te faut plutot :

    avec $_POST['champ'.$x] me parait plus indiqué

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Salut,
    En regardant le code entier, on voie que les guillemets sont bien placés.
    Je pencherais peut-être pour quelquechose d'encore plus simple : un espace incongru et non-désiré entre "champ " et $x. Je crois que ce n'est pas super propre pour le nom. Un underscore remplacera avantageusement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut Faut définir la variable
    Bonjour,

    Il faut déclarer la variable $x

    s'il faut quelle reste intacte au passage des pages, placer

    sinon un simple $x=""; ou $x="0"; suffit

    La déclaration d'une variable dans une ligne de commande ou fonction ne semble pas suffisante car si j'ai bien compris le fonctionnement php, une fonction est d'abord lue, puis exécutée. Ainsi ce n'est pas le premier $x=0 qui est sanctionné, mais le deuxième, $x < qui n'est pas encore déclaré puisque le résultat de la première commande $x=0 n'est pas encore exécuté lors de la lecture.

    J'espère que mon analyse est bonne.... mais en tout cas celà fonctionnera de la manière!

    Rodolphe

  5. #5
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    merci pour vos réponses
    mais en faite j'aimerai pouvoir mettre le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="ajoutchamps2.php">
    avant tout le code afin que ce form soit effectif autant pour les champs ajoutés autant pour le champs de depart

    là en faite, je viens de m'apercevoir que je ferme le 1er form avant d'ouvrir le 2eme et que le <inpu type= submit ...> se situe au niveau du 2eme form
    c'est pour cela que le $i n'est pas reconnu

    je voudrais juste un seul <input type= submit ...> pour les champs ajoutés (avec la boucle for) et pour le champs de depart (le 1er) mais je n'y arrive pas
    je mets le <form method="post" action="ajoutchamps2.php"> avant la boucle for pour que tout soit pris en compte mais ça ne marche pas...

    j'espère que je me suis bien expliqué...

  6. #6
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    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
     for ($x = 0; $x< $jj; $x++)
     {
     
        echo '<table border = 0>';
       echo '<form method="post" action="ajoutchamps2.php">';
      echo '<tr><td> ';
      echo '
     
      <tr>
      <td>
      Nom caracteristique<input type=text name=champ "'.$x.'">
      </td>
      <td>
      Descriptif<textarea name= descriptif"'.$x.'"></textarea>
     
      </td>
      </tr>
       </form>
      </table>';
    il faut sortir le <form> du for() alors :p

    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
     f
    echo '<form method="post" action="ajoutchamps2.php">';
    or ($x = 0; $x< $jj; $x++)
     { 
        echo '<table border = 0>';
        echo '<tr><td> ';
      echo '
     
      <tr>
      <td>
      Nom caracteristique<input type=text name=champ "'.$x.'">
      </td>
      <td>
      Descriptif<textarea name= descriptif"'.$x.'"></textarea>
     
      </td>
      </tr>
       </form>
      </table>';
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2008, 18h04
  2. [Tableaux] Variable non considéré comme un chiffre
    Par Merlon dans le forum Langage
    Réponses: 7
    Dernier message: 27/06/2007, 12h08
  3. variable non reconnue dans une requête sql
    Par sanatou dans le forum C++
    Réponses: 3
    Dernier message: 13/12/2006, 17h43
  4. variable non reconnue
    Par shnouf dans le forum Langage
    Réponses: 7
    Dernier message: 13/02/2006, 16h44
  5. variables non reconnues
    Par syscom14 dans le forum Langage
    Réponses: 6
    Dernier message: 11/10/2005, 18h37

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