PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 29-04-2018 15:58:59

stehag
Membre
Inscription : 29-04-2018
Messages : 3

Envoi des données d'un formulaire vers une base

Bonjour, je débute en développement web.
Je souhaite récupérer les données d'un formulaire sur la même page que celui-ci, et les envoyer vers une base mysql.
Problème: rien n'est envoyé vers ma base .
Des suggestions à me proposer ?
Merci d'avance.
Mon code :


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

Hors ligne

#2 29-04-2018 19:13:14

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Envoi des données d'un formulaire vers une base

if (isset($_POST['valid_form']))
au lieu de
if (isset($_post['valid_form']))

Hors ligne

#3 30-04-2018 08:00:26

stehag
Membre
Inscription : 29-04-2018
Messages : 3

Re : Envoi des données d'un formulaire vers une base

Merci tof73, l'envoi des données fonctionne maintenant.

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

Dernière modification par stehag (30-04-2018 08:10:00)

Hors ligne

#4 30-04-2018 13:29:46

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Envoi des données d'un formulaire vers une base

les données étant dans la table, c'est à partir de la table qu'il faut les afficher plutôt que depuis $_POST.

Hors ligne

Pied de page des forums