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 :

Récupérer les données d'un formulaire


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer les données d'un formulaire
    Bonjour, je suis débutant en développement web. Je souhaite récupérer les données d'un formulaire sur la même page que celui-ci.

    Dans index.php j'ai mis un form action="insert.php" avec la methode post et un input de type submit avec value="Ajouter".
    Lorsque je clique le bouton Ajouter , c'est la page insert.php qui s'ouvre.

    Or je souhaite pouvoir afficher les données dans un tableau sur la même page que le formulaire, en même temps qu'elles sont envoyées vers la base de données.

    Comment faire, je coince ?
    Merci d'avance pour votre aide.
    Cordialement
    Dernière modification par Invité ; 27/04/2018 à 13h35.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Simple, pas propre et a proscrire....

    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
     
     action="index.php"
     
     
    if($_POST){
     
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
     
    }else{
     
    //le formulaire en question
     
    }

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne suis pas sûre de comprendre : Tu as un tableau et un formulaire dans la même page et tu veux que lorsque tu valides le formulaire, ça fasse l'insertion en base de données et ça rafraichisse le tableau avec les nouvelles lignes ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui c'est exactement ça.
    Je souhaite un rafraîchissement automatique afin que les informations soient affichées tout de suite dans le tableau.
    A chaque nouvelle validation du formulaire, création d'une nouvelle ligne, le tout dans la même page , sans oublier l'envoi des données dans la base

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    "formulaire traitement même page"

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour, j'ai utilisé $_SERVER['PHP_SELF'] pour envoyer les données sur la même page. Cela fonctionne.
    Reste un soucis : lorsque je valide le formulaire, une nouvelle ligne s'affiche dans mon tableau, et efface la précèdente.
    Or je souhaite que les données précédemment validées restent affichées .
    Des conseils à me donner ?
    Cdt

    Mon code :
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    <?php
     
    if( empty(session_id()) ){ session_start(); } 
    // Affichage des erreurs et les avertissements PHP
    error_reporting(E_ALL); 	
     
    //test de connexion à la bdd
    try{
    $objetPdo = new PDO('mysql:host=localhost;dbname=dolibarr','root','');  
      }catch(PDOException $e){   
     die('Erreur : '.$e->getMessage());
    } 
     
    if (isset($_POST['valid_form']))
    {
        $numero = $_POST['numero'];
        $date = $_POST['date'];
        $fournisseur = $_POST['fournisseur'];
        $montantHt = $_POST['montantHt'];
        $taux = $_POST['taux'];
        $montantTTC = $_POST['montantTTC'];
     
        // préparation de la requète
        $pdoStat = $objetPdo->prepare('INSERT INTO achats VALUES (NULL, :num_facture, :facture_date, :nom_fournisseur, :montant_ht, :taux_tva, :montant_ttc)');
     
        //on lie chaque marqueur à une valeur
        $pdoStat->bindValue(':num_facture', $_POST['numero'], PDO::PARAM_STR);
        $pdoStat->bindValue(':facture_date', $_POST['date'], PDO::PARAM_STR);
        $pdoStat->bindValue(':nom_fournisseur', $_POST['fournisseur'], PDO::PARAM_STR);
        $pdoStat->bindValue(':montant_ht', $_POST['montantHt'], PDO::PARAM_STR);
        $pdoStat->bindValue(':taux_tva', $_POST['taux'], PDO::PARAM_STR);
        $pdoStat->bindValue(':montant_ttc', $_POST['montantTTC'], PDO::PARAM_STR);
     
        //execution de la requete
        $insertIsOK = $pdoStat->execute();
    }
    ?>   
    <!DOCTYPE html>
    <html>
    <head>
       <meta charset="utf-8">
        <title>Insertion</title>  
    </head>
    <body>
     
    <!-- $_SERVER['PHP_SELF']  pour envoyer les données sur la même page -->
     
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> 
        <div class="div-table-responsive-no-min">
            <table class="noberder">
                <tbody>
                    <tr class="liste_titre">
                        <td>Numéro de facture</td> 
                        <td>Date</td>
                        <td>Fournisseur</td>
                        <td>Montant HT</td>
                        <td>TVA</td>
                        <td>Montant TTC</td>
                        <td align="center">Action</td>
                    </tr>
                    <tr class="oddeven">
                        <input type="hidden" name="valid_form" id="valid_form" value="temp">
                        <td>
                            <input class="flat" size="15" name="numero" value="" type="text" required>
                        </td>
                        <td>
                            <input class="flat" size="15" name="date" value="" type="date" required>
                        </td>
                        <td>
                            <input class="flat" size="15" name="fournisseur"value="" type="text" required>
                        </td>
                        <td>
                            <input class="flat" size="15" name="montantHt" value="" type="text" required>
                        </td>
                        <td>
     
                            <select name="taux" >
                                <option value="0" >0</option>
                                <option value="2.1" >2.1</option>
                                <option value="5.5" >5.5</option>
                                <option value="10" >10</option>
                                <option value="20" >20</option>
                            </select>
     
                        </td>
                        <td>
                            <input class="flat" size="15" name="montantTTC" value="" type="text">
                        </td>
                        <td>
                            <input type="submit" name="achat" value="Ajouter">
                        </td>                  
                    </tr>
                </tbody>   
            </table>
        </div>   
    </form> 
     
    <table>
        <tr class="liste_achats">
            <td>
                <label>Numéro de facture</label>
                <br>
                <?php echo $_POST['numero'] ?>
            </td>
            <td>
                <label>Date</label>
                <br>
                <?php echo $_POST['date'] ?>
            </td>
            <td>
                <label>Non du fournisseur</label>
                <br>
                <?php echo $_POST['fournisseur'] ?>
            </td>
            <td>
                <label>Montant HT</label>
                <br>
                <?php echo $_POST['montantHt'] ?>
            </td>
            <td>
                <label>Taux de TVA</label>
                <br>
                <?php echo $_POST['taux'] ?>
            </td>
            <td>
                <label>Montant TTC</label>
                <br>
                <?php echo $_POST['montantTTC'] ?>
            </td>    
        </tr>  
    </table>   
    </body>
    </html>
    Dernière modification par Invité ; 30/04/2018 à 09h08.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ce que tu fais là, c'est ré-afficher les données envoyées du formulaire. Donc forcément, c'est éphémère.
    Ce que tu dois faire, c'est lire les données en base après avoir faire l'insertion. Affichage de données dans un tableau - Affichage "en ligne" avec Base de Données

  8. #8

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/01/2020, 14h21
  2. [FORM] récupérer les données d'un formulaire
    Par dragonfly dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/12/2007, 13h53
  3. Réponses: 14
    Dernier message: 15/05/2007, 14h51
  4. Récupérer les données d'un formulaire
    Par rimeh dans le forum Langage
    Réponses: 12
    Dernier message: 05/02/2007, 14h58
  5. récupérer les données d'un formulaire un peu spécial
    Par Jim_Nastiq dans le forum Interfaces Graphiques
    Réponses: 12
    Dernier message: 10/07/2006, 10h53

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