Notice: Undefined index: cmp in C:\Program Files\EasyPHP-12.1\ww

Résolu
Nouvelle_Informaticienne Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   -  
Nouvelle_Informaticienne Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai un soucis dans mon code , il connait pas "cmp" par contre il existe deja dans le code ! connaissez vous pourquoi ?
merci


<HTML>
<head>
<script>
    var i=0;
    function addinput()
    {
        i++;
         
        var frm = document.getElementById("frm"); //le noeud parent
         
        // creation d'un champ
        var inpt = document.createElement('input');
        inpt.setAttribute('name','txt'+i);
        inpt.setAttribute('type','text');
        frm.appendChild(inpt);
         
        // retour a la ligne
        var br = document.createElement('br');
        frm.appendChild(br);
         
        //Incrementation du compteur i (nombre de champ)
        document.getElementById("cmp" ).value=i;
    }
</script>
</head>
<body>
<form method="post">
    <input type='button' id='ajIn' value=' ajouter ' onClick='addinput()' />
    <input  type="hidden" value="javascript:i;"name="cmp" id="cmp" />
    <div id="frm" ></div>
    <input type="submit" value=" Envoyer ">
 
</form >
<?php
    //pour recuperer le contenu des champs envoyés par post
     //var $cmp;
    for($n=1; $n<= intval($_POST['cmp']) ; $n++)
    {
        echo $_POST['txt'.$n].'<br />';
    }
     
    //var_dump($_POST);
     
?>
</body>
</html>



il m'affiche le contenu je fais mon ajout des champs correctement je recupere mes valeurs correctement mais avec le message d'erreur qui s'affiche en bas de la page

Notice: Undefined index: cmp in C:\Program Files\EasyPHP-12.1\www\pst\projet\maPage.php on line 38

la ligne 38 c'est celle la

for($n=1; $n<= intval($_POST['cmp']) ; $n++)

je vous remercie

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

La variable $_POST['cmp'] n'existe pas au premier chargement de la page d'où le message d'erreur.
Il ne faut utiliser cette variable que si le formulaire est envoyé, autrement dit que si cette variable existe :
// si $_POST['cmp'] existe et n'est pas vide
if (!empty($_POST['cmp']))
{
    for($n=1; $n<= intval($_POST['cmp']) ; $n++)
    {
        echo $_POST['txt'.$n].'<br />';
    }
}
1
Nouvelle_Informaticienne Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   3
 
exactement c'est ce que j'ai remarqué moi aussi mais au debut j'ai utilisé
 if(isset($_POST['cmp'])
ca revient au meme chose mais ca n a pas marche puis j'ai modifier et maintent ca va (y)

je vous remercie bcp
bonne journee
0