Bonjour,

Mon code me permet d'insérer plusieurs lignes dans ma bdd. J'ai voulu compléter mon code par du JS/Jquery pour faire passer mes variables:

- m'évitant le rechargement de page.

- affichant un span de succès ou d'echec sur mon insertion.

J'ai bien suivi la doc, mais ça ne s'insert plus dans ma base et le span ne s'affiche pas. Ci-dessous mon code.

1.php est le formulaire

2.php est l'insertion SQL

script.JS est le passage de variable dynamiques.

1.php
Code HTML : 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
<?php include 'connection.php' ; ?>
<HTML>
  <HEAD>
  <meta charset="utf-8">
  <title>Poster en ajax</title>
  <link rel="stylesheet" href="ajax.css">
  <script src="jquery.min.js"></script>
  <script src="script.js"></script>
 
 
<TITLE> Add/Remove dynamic rows in HTML table </TITLE>
 
<SCRIPT language="javascript">
function addRow(tableID) {
 
      var table = document.getElementById(tableID);
 
      var rowCount = table.rows.length;
      var row = table.insertRow(rowCount);
 
      var cell1 = row.insertCell(0);
      var element1 = document.createElement("input");
      element1.type = "checkbox";
      element1.name="chkbox[]";
      cell1.appendChild(element1);
 
      var cell2 = row.insertCell(1);
      cell2.innerHTML = "<input type='text'  name='devis_ref[]' class='devis_ref[]' />";
 
      var cell3 = row.insertCell(2);
      cell3.innerHTML = "<input type='text'  name='devis_contact[]' class='devis_contact[]' />";
      //cell2.innerHTML = "<select name='item[]' id='facture_fournisseur' type='text' class='form-control'>< $list = $bdd->query('SELECT * FROM fournisseur');while ($data = $list->fetch()) { ?><option value='< echo $data['fournisseur_nom']; ?>'> < echo $data['fournisseur_nom']; ?></option>< } $list->closeCursor(); ?></select>";
 
      var cell4 = row.insertCell(3);
      cell4.innerHTML = "<input type='text'  name='devis_refarticle[]' class='devis_refarticle[]' />";
 
      var cell5 = row.insertCell(4);
      cell5.innerHTML =  "<input type='text'  name='devis_designationarticle[]' class='devis_designationarticle[]' />";
 
      var cell6 = row.insertCell(5);
      cell6.innerHTML = "<input type='text'  name='devis_pu[]' class='devis_pu[]' />";
 
      var cell7 = row.insertCell(6);
      cell7.innerHTML =  "<input type='text'  name='devis_unite[]' class='devis_unite[]' />";
 
      var cell8 = row.insertCell(7);
      cell8.innerHTML = "<input type='text'  name='devis_quantite[]' class='devis_quantite[]' />";
 
      var cell9 = row.insertCell(8);
      cell9.innerHTML =  "<input type='text'  name='devis_prixnetunite[]' name='devis_prixnetunite[]' />";
      }
 
    function deleteRow(tableID) {
        try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
 
        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked) {
                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }
        }catch(e) {
            alert(e);
        }
    }
 
</SCRIPT>
</HEAD>
<BODY>
      <div class="msg"></div>
<form action="" method="post" name="f">
  <INPUT type="button" class="btn btn-success" value="Ajouter un autre produit" onClick="addRow('dataTable')" />
 
  <INPUT type="button" class="btn btn-danger" value="Supprimer le produit" onClick="deleteRow('dataTable')" />
 
 
<table class="table table-bordered table-striped table-condensed" width="1000" border="1">
<thead>
<tr>
<th width="40"></th>
<th width="40">ID</th>
<th width="40">Contact</th>
<th width="40">Référence Article</th>
<th width="40">Désignation Article</th>
<th width="40">Prix unitaire</th>
<th width="40">Unité</th>
<th width="40">Quantité</th>
<th width="40">Prix Net Unitaire</th>
</tr>
</thead>
<tbody id="dataTable">
 
</tbody>
</TABLE>
 
 
<INPUT type="submit" value="Insert" name="submit" />
</form>
</BODY>
script.js
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
 
$(document).ready(function(){
    $('.submit').click(function(){
      $.post('2.php', {
        devis_ref: $('devis_ref').val(),
        devis_contact: $('devis_contact').val(),
        devis_refarticle: $('devis_refarticle').val(),
        devis_designationarticle: $('devis_designationarticle').val(),
        devis_pu: $('devis_pu').val(),
        devis_unite: $('devis_unite').val(),
        devis_quantite: $('devis_quantite').val(),
        devis_prixnetunite: $('devis_prixnetunite').val()
        }, (resultDuScriptPHP) => {
           if (resultDuScriptPHP === 'ok') {
             $('.msg').append('<span>Vos données ont été envoyées</span>');
           } else if (resultDuScriptPHP === 'formNotComplete') {
             $('.msg').append('<span>Veuillez complétez tous les champs</span>');
           }
         });
2.php
Code PHP : 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
<?php try { $bdd = new PDO('mysql:host=localhost;dbname=contact', 'root', '', array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));}
catch (Exception $e) {
  die('Erreur : ' . $e->getMessage()) ; }
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    if(isset($_POST['submit']))
      {
       foreach ($_POST['devis_ref'] as $key => $value)
          {
              $devis_ref = $_POST["devis_ref"][$key];
              $devis_contact = $_POST["devis_contact"][$key];
              $devis_refarticle = $_POST["devis_refarticle"][$key];
              $devis_designationarticle = $_POST["devis_designationarticle"][$key];
              $devis_pu = $_POST["devis_pu"][$key];
              $devis_unite = $_POST["devis_unite"][$key];
              $devis_quantite = $_POST["devis_quantite"][$key];
              $devis_prixnetunite = $_POST["devis_prixnetunite"][$key];
 
              $req = $bdd->prepare("INSERT INTO devis(devis_ref, devis_contact, devis_refarticle, devis_designationarticle, devis_pu, devis_unite, devis_quantite, devis_prixnetunite) VALUES(?,?,?,?,?,?,?,?)");
              $req->execute(array($devis_ref,$devis_contact,$devis_refarticle,$devis_designationarticle,$devis_pu,$devis_unite,$devis_quantite,$devis_prixnetunite));
           }
                resultDuScriptPHP === 'ok';
          }
         else {
                resultDuScriptPHP === 'formNotComplete';
          }
 ?>
merci!