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 :

aide pour facture sous php : Notice: Undefined index


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 57
    Points : 25
    Points
    25
    Par défaut aide pour facture sous php : Notice: Undefined index
    Bonjour,

    je suis entrain de créer une page de facturation sous php. j'aimerais que le résultat (totalttc) s'affiche en fonction des choix : nombre d'heures et taux horaires. Je sais pas par ou commencer j'ai un message d'erreurs Notice: Undefined index:

    voila mon code et merci d'avance les amis


    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
     
    <label>Durée d'intervention :</label><select name="heuresI">
    <option value=00>00</option>
    <option value="01" >01</option>
    <option value="02" >02</option>
    <option value="03" >03</option>
    <option value="04" >04</option>
    <option value="05" >05</option>
    <option value="06" >06</option>
    <option value="07" >07</option>
    <option value="08" >08</option>
    <option value="09" >09</option>
    <option value="10" >10</option>
    </select> heure(s)
    <select name="minutesI"><option value="00" >00</option>
    <option value="15" >15</option>
    <option value="30" >30</option>
    <option value="45" >45</option>
    </select> minute(s)<br><br>
    <label>Taux horaire TTC :</label><input type="text" SIZE="1" name="txhoraire" value="55">
    <br/><br/>
    <label>TVA :</label>
    <select name="tva">
                    <option value="0.07" >7.00%</option>
                    <option value="0.196" >19.60%</option>
                    <option value="0.085" >8.50%</option>
                    <option value="0.055" >5.50%</option>
                    <option value="0.021" >2.10%</option></option></select>
                      soit <input type="text" STYLE="text-decoration:none;color:#1D980F" SIZE="10" name="soit"> Euros<br/><br/>
     
                    <label>Total facture TTC :</label><input type="text" SIZE="33" STYLE="text-decoration:none;;color: #FF0000;" name="totalttc" readonly><br/><br/>               
     
     
    <label>Mode de paiment :</label><select name="mode">
                    <option value="cheque"> Cheque</option>
                    <option value="espece" >Especes</option>
                    <option value="VB" >Virement bancaire</option>
                    <option value="CESU_p" >CESU préfinancé</option>
                    <option value="CESU_décl" >CESU déclaré</option>
                    </select><br/><br/>            
    <label><input type="submit" value="Enregistrer" name="recfacture"></label><br><br>
    </div>
     
    <div id="modifier">
    <t2>RECHERCHER UNE FACTURE</t2><br><br>
    <label>Par nom client:</label> </font><input type="text" name="searchnom" style="width: 100px"><br>
    <input type="submit" name="searchfact" value="Rechercher" style="width:100px"><br>
    </div>
     
    <?php
     
    $h=$_POST['heuresI'];
    $i=$_POST['minutesI'];
    $tva=$_POST['tva'];
    $txh=$_POST['txhoraire'];
    $soit=$_POST['soit'];
    $ttc=$_POST['totalttc'];
    ?>

  2. #2
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Notice : Undefined index.... ??? On aurait bien aimé avoir la suite...

    Ce genre d'erreur signifie que tu dois avoir une variable non-initialisé.

    Regarde dans tes variables PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $h=$_POST['heuresI'];
    $i=$_POST['minutesI'];
    $tva=$_POST['tva'];
    $txh=$_POST['txhoraire'];
    $soit=$_POST['soit'];
    $ttc=$_POST['totalttc'];

    Pour savoir si une variable est définit ou pas, il faut la tester.

    exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if (isset($_POST['heuresI']))
        $h = $_POST['heuresI'];
    else
        $h = "";
    ?>

    ou encore
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $h = isset($_POST['heuresI']) ? $_POST['heuresI'] : "";
    ?>

    Par contre, vérifie toujours ce que contient tes $_POST, si $_POST['heuresI'] est un entier, caste le en INT

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    (int)$_POST['heuresI'] OU intval($_POST['heuresI'])

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  3. #3
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Tu dois séparer ton formulaire de ton résultat en l'envoyant sur une page de traitement.

    Exemple :
    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
    <form action="traitement.php" method="post">
    <label>Durée d'intervention :</label><select name="heuresI">
    <option value=00>00</option>
    <option value="01" >01</option>
    <option value="02" >02</option>
    <option value="03" >03</option>
    <option value="04" >04</option>
    <option value="05" >05</option>
    <option value="06" >06</option>
    <option value="07" >07</option>
    <option value="08" >08</option>
    <option value="09" >09</option>
    <option value="10" >10</option>
    </select> heure(s)
    <select name="minutesI"><option value="00" >00</option>
    <option value="15" >15</option>
    <option value="30" >30</option>
    <option value="45" >45</option>
    </select> minute(s)<br><br>
    <label>Taux horaire TTC :</label><input type="text" SIZE="1" name="txhoraire" value="55">
    <br/><br/>
    <label>TVA :</label>
    <select name="tva">
                    <option value="0.07" >7.00%</option>
                    <option value="0.196" >19.60%</option>
                    <option value="0.085" >8.50%</option>
                    <option value="0.055" >5.50%</option>
                    <option value="0.021" >2.10%</option></option></select>
                      soit <input type="text" STYLE="text-decoration:none;color:#1D980F" SIZE="10" name="soit"> Euros<br/><br/>
     
                    <label>Total facture TTC :</label><input type="text" SIZE="33" STYLE="text-decoration:none;;color: #FF0000;" name="totalttc" readonly><br/><br/>               
     
     
    <label>Mode de paiment :</label><select name="mode">
                    <option value="cheque"> Cheque</option>
                    <option value="espece" >Especes</option>
                    <option value="VB" >Virement bancaire</option>
                    <option value="CESU_p" >CESU préfinancé</option>
                    <option value="CESU_décl" >CESU déclaré</option>
                    </select><br/><br/>            
    <label><input type="submit" value="Enregistrer" name="recfacture"></label><br><br>
    </div>
     
    </form>
     
    <div id="modifier">
    <t2>RECHERCHER UNE FACTURE</t2><br><br>
    <label>Par nom client:</label> </font><input type="text" name="searchnom" style="width: 100px"><br>
    <input type="submit" name="searchfact" value="Rechercher" style="width:100px"><br>
    </div>
    Fichier traitement.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    $h=$_POST['heuresI'];
    $i=$_POST['minutesI'];
    $tva=$_POST['tva'];
    $txh=$_POST['txhoraire'];
    $soit=$_POST['soit'];
    $ttc=$_POST['totalttc'];
    ...
    ?>

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 53
    Points : 40
    Points
    40
    Par défaut
    Effectivement, lors du premier chargement de la page, le contenu de $_POST est affecté à tes variables. Seulement, comme tu n'as pas encore posté le formulaire, le $_POST n'existe pas encore, d'où le message d'erreur.

    Exemple :
    Lorsque tu fais $h = $_POST['heuresI']; la première fois, le $_POST['heuresI'] n'existe pas encore, donc le programme plante.

    Comme te l'a dit TigerCX, il faut que tu sépares le formulaire du traitement des valeurs qu'il renvoi, un sur chaque page. De cette façon, l'utilisateur accède au formulaire, le remplit, PUIS seulement accède à la page qui reçoit les valeurs et exécute le script.

    Deuxième solution plus facile à mettre en oeuvre, tu peux dire à ton script PHP : "ne procède aux affectations que si les valeurs existe". De cette façon, le script ignorera le traitement des $_POST lors du premier chargement.

    Pour cela, tu dois tester le contenu de ton $_POST avec la fonction isset().
    Si cette fonction renvoi 'true', alors le formulaire à été posté et tu peux réaliser les affectations, comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['recfacture'])) {
    $h=$_POST['heuresI'];
    $i=$_POST['minutesI'];
    $tva=$_POST['tva'];
    $txh=$_POST['txhoraire'];
    $soit=$_POST['soit'];
    $ttc=$_POST['totalttc'];
    }

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

Discussions similaires

  1. php Notice: Undefined index:
    Par DaYonyon dans le forum Langage
    Réponses: 5
    Dernier message: 20/01/2010, 12h17
  2. [PHP-JS] Problème Notice: Undefined index
    Par Sniper94-2 dans le forum Langage
    Réponses: 1
    Dernier message: 19/04/2007, 16h45
  3. Réponses: 8
    Dernier message: 03/04/2007, 10h01
  4. [Php] error : Undefined index: MyBrainFound
    Par cyrill.gremaud dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2006, 11h39
  5. Besoin d'aide pour une sous requete
    Par Celia1303 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/10/2005, 14h09

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