Bonjour,

J'ai une fonction ajax qui fonctionnait bien mais tout d'un coup ca marche plus.
voici le code

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
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
134
<!DOCTYPE html>
<html>
<?php
include("connection.php");
   $bdd_facture =connectMaBase();
?>
 
  <head>
  <meta http-equiv="cache-control" content="public, max-age=60">
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0">
   <link rel="stylesheet" href="commerce.css" />
       <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.css">
 
    <style>
 
    </style>
   </head>
 
    <body>
  <header>
<h1>Ajouter une facture</h1>
</header>
  <nav>
  </nav>
  <section>
  <aside>
 
  </aside>
 
  <article>                
 <form name ="form_factures">
  <div id="nom_factures1">
  <label for="Num_facture">Numero facture :</label>
 
<input type="text" name="Num_facture" id="Num_facture" />
 
  </div>
 
				<div id="date_facture1">
            <label for="datepicker">Date Facture :</label>
            <input type="text" id="datepicker" />
        </div>
 
 
				    <div id="fournisseur_facture1">
 
                   <label for="fournisseur_facture">Fournisseur :</label>
 
				  <select name="facture_fournisseur" id="facture_fournisseur"  >
				  <?php
 
				     $bdd_facture =connectMaBase();
 
 
					  $reponse1 = $bdd_facture->query('SELECT Id_fournisseur ,Nom_fournisseur FROM fournisseurs');
 
while ($donnees1 = $reponse1->fetch())
{
	echo '<option value="'.$donnees1['Id_fournisseur'].'">'.$donnees1['Nom_fournisseur'].'</option>';
 
 
}
 
$reponse1->closeCursor();				
					 ?>
 </select>
				   </div>
 
 
				   <div id="article_facture">
						 <table align="center" id="idtabaert">
						 	 <caption>Les articles</caption>
						 <tr>
						  <td> <select name="facture_article" id="facture_article" class="myLists">
 
 
                               <?php
 
							   $reponse = $bdd_facture->query('SELECT Id_article, Designation FROM articles');
 
while ($donnees = $reponse->fetch())
{
	echo '<option value="'.$donnees['Id_article'].'">'.$donnees['Designation'].'</option>';
 
 
}
 
$reponse->closeCursor();					   
 
 
 
 
?>
 
</select></td>
						    </tr>
 
						 </table>
						 	 </div>
 
							 <div id="ajt_article1">
							 <input type="button" name="ajt_article" id="ajt_article" value="Ajout des articles"   />
 
						   </div>			  		   
 
				   	 <div id="bt_fact">
 
				   <input type="button" name="valider_fact" id="valider_facture" value="Envoyer" />
 
				    </div>
 
 
 
 
 
 
             </form>
 
 
            </article>
 
        </section>
 
 
 
        <footer>
 
 
 
        </footer>
    </body>
 
</html>

Code javascript : 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
	<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
      <script>
        "use strict";
 
        $( function(){ // forme abrégée de $(document).ready(function(){
 
            $.datepicker.regional['fr'] = {
                closeText: 'Fermer',
                prevText: 'Précédent',
                nextText: 'Suivant',
                currentText: 'Aujourd\'hui',
                monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
                monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin','Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
                dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
                dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
                dayNamesMin: ['D','L','M','M','J','V','S'],
                weekHeader: 'Sem.',
                dateFormat: 'dd/mm/yy',
                firstDay: 1,
                isRTL: false,
                showMonthAfterYear: false,
                yearSuffix: ''
            };
 
            $.datepicker.setDefaults( $.datepicker.regional['fr'] );
 
            $( "#datepicker" ).datepicker();
 
        });
 
        $( window ).load( function(){
 
        });
 
 
 
    function ajouterLigne()
  {
 var tableau = document.getElementById("idtabaert");
var ligne = tableau.insertRow(-1);//on a ajouté une lignetr
var colonne1 = ligne.insertCell(0);//on a une ajouté une celluletd
var newList = document.getElementById("facture_article").cloneNode(true);
newList.id = newList.id + tableau.rows.length;
newList.name = newList.name  + tableau.rows.length;
colonne1.appendChild(newList);
 }
 
 
 
 
 
var btttest_facture = document.getElementById('ajt_article');
 
 
btttest_facture.addEventListener('click', function() {
 
        ajouterLigne();
 
    }, false);
 
function envoi_facture()
	{
 
  xhr = new XMLHttpRequest();
 
 
var Num_facture = document.getElementById('Num_facture').value;
var date_facture =document.getElementById('datepicker').value;
var facture_fournisseur1 =document.getElementById('facture_fournisseur').value;
 
 
var myLists = document.getElementsByClassName('myLists');
var myListsValues = new Array();
 
 
for (i=0; i < myLists.length; i++) {
  myListsValues.push(myLists[i].options[myLists[i].selectedIndex].value); 
 
  }
 
 var tableau_articles=myListsValues.join("-");
 var Num_facture = encodeURIComponent(Num_facture),
 date_facture = encodeURIComponent(date_facture),
 
facture_fournisseur1 = encodeURIComponent(facture_fournisseur1),
 tableau_articles = encodeURIComponent(tableau_articles);
xhr.open("POST","donnees_factures.php",true);
 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xhr.send('Numfacture=' + Num_facture + '&Datefacture=' + date_facture + '&Fournisseurfacture=' + facture_fournisseur1 + '&tableauarticles=' + tableau_articles);
 xhr.addEventListener('readystatechange', function() { // On gère ici une requête asynchrone
if (xhr.readyState === 4 && xhr.status === 200) { // Si le fichier est chargé sans erreur
 alert(xhr.responseText);
  }
else if (xhr.readyState == 4 && xhr.status != 200) { // En cas d'erreur !
   }
 
}, false);
 
 
}
 
var bouton_facture = document.getElementById('valider_facture');
 
bouton_facture.addEventListener('click', function() {
 
        envoi_facture();
 
    }, false);
var bouton_facture = document.getElementById('valider_facture');
 
 
bouton_facture.addEventListener('click', function() {
 
        envoi_facture();
 
    }, false);
    </script>
voici la page php appelle


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
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
<?php
   include("connection.php");
 
		 $Numfacture=$_POST['Numfacture'];
 
		$Datefacture=$_POST['Datefacture'];
 
		$Fournisseurfacture=$_POST['Fournisseurfacture'];
 
		$Tableauarticles=$_POST['tableauarticles'];
 
 
	 try
 
{
	 $bdd =connectMaBase();
}
catch (Exception $e)
 
{
 
        die('Erreur : ' . $e->getMessage());
}
 
if ((!empty($Numfacture)) && (!empty($Datefacture)) && (!empty($Fournisseurfacture)) && (!empty($Tableauarticles)))
 
	{
 
		$Datefacture=date('Y-m-d', strtotime($Datefacture));
 
$pieces = explode("-", $Tableauarticles);
 
 
		  $req_art = $bdd->prepare('INSERT INTO facture(Num_facture,Date_facture ,Id_fournisseur) VALUES(:Num_facture, :Date_facture,:Id_fournisseur)');
 
    $req_art->execute(array(
 
    'Num_facture' =>  $Numfacture,
 
    'Date_facture' => $Datefacture,
 
	'Id_fournisseur' => $Fournisseurfacture
 
	   ));
 
	   $count_art = $req_art->rowCount();	 
 
if ($count_art >0)
{
	$id_facture=$bdd->lastInsertId();
 
 
 
 
		 foreach($pieces as $value) 
 
{
$req_art = $bdd->prepare('INSERT INTO facture_article(Id_facture,Id_article) VALUES(:Id_facture, :Id_article)');
 
    $req_art->execute(array(
	    'Id_facture' => $id_facture,
			'Id_article' => $value
			));
 
 
 
 
 
}
 
echo 'La facture a ete bien enregistree!';
}
 
 
else
{
	echo 'La facture ne peut pas etre enregistree';
 
 
 
	}
 
 
 
 
 
 
 
 
 
	}	
	else
	{
		echo 'Tous les champs doivent etre remplis!';
	}
 
?>

Quel est le problème a votre avis ?