Lien pour supprimer une ligne dans un table avec PHP+AJAX+Jquery

Résolu/Fermé
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 - Modifié par jordane45 le 12/12/2015 à 02:03
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 - 12 déc. 2015 à 18:29
bonsoir;

mon problème lorsque je clique sur le lien supp ,aucune modification sur ma table

voilà trois page

1: voiture.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
<html xmlns="[http://www.w3.org/1999/xhtml]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script src="jquery.js"></script>
 
<script>
  $(document).ready(function()
 {
  $('#idm').change(function() {
  var idv = $(this).val(); 
  $.ajax({
    type: 'POST',
    url: "marque.php",
    data: {idv: idv },
    success: function(msgn){
   $('#mm').html(msgn);
     }       
    });
 });
 
 
});
 
</script>
</head>
<body>
 
<form>
<select name="nmarque" id="idm">
<option></option>
 
<?php 
$idcon=mysqli_connect("localhost","root","","basevoiture");
$result = mysqli_query($idcon,"select * from marque_voiture");
 while($row = mysqli_fetch_array($result))
  {
   echo"<option value=".$row['id_marque'].">".$row['nom_marque']."</option>";  
   }
mysqli_close($idcon);
?>
</select>
<div id="mm"></div>
</form>
 
 
</body>
</html>



2: marque.php


 
<script src="jquery.js"></script>
 
<script>
  $(document).ready(function()
 {
 
$('.delete').click(function(){
 
   var response = confirm("Voulez-vous vraiment supprimer l'article?");
   /* si la réponse est non */
   if(!response)
   {
      return false; /* ANNULE LE CLICK et donc le href */
   }
 
});
 
 });
 
</script>
 
<table border="1">
<tr><td>matricule</td><td>couleur</td><td>KM</td><td>nom_marque</td><td>sup</td></tr>
<?php 
 
$idcon = mysqli_connect("localhost","root","","basevoiture");
$idv = $_POST['idv'];
 
$result = mysqli_query($idcon,"SELECT * FROM marque_voiture where id_marque ='$idv' ");
$row = mysqli_fetch_array($result);
 
 
 
$result1 = mysqli_query($idcon,"SELECT * FROM voiture where id_marque ='$idv' ");
 
while($row1 = mysqli_fetch_array($result1))
  {
 echo "<tr><td>".$row1['matricule']."</td><td>".$row1['couleur']."</td><td>".$row1['km']."</td><td>".$row['nom_marque']."</td><td><a class='delete' href='d_voiture.php' id_voiture=(".$row1['id_voiture'].")' >sup</a></td></tr>";
 }
mysqli_close($idcon);
 
?></table>



3: d_voiture.php


<?php 
 
$idv = $_POST['idv'];
if (isset($idv) AND !(empty($idv)))
{
include ("voiture.php");
include ("marque.php");
   $idcon = mysqli_connect("localhost","root","","basevoiture");
   $result = mysqli_query($idcon,"DELETE FROM voiture WHERE id_voiture=$idv");
}
 
?>




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

est ce que je dois préparer de nouveau l'appelle ajax sinon ou?
A voir également:

7 réponses

jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
Modifié par jordane45 le 12/12/2015 à 02:22
Bonjour,

Essayes ça :
<?php
//----------------------------------------------------------------------------//
// Fichier : CNX.bdd
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//
$host = "localhost";
$user = "root";
$password = "";
$bdd = "basevoiture";

 $idcon = mysqli_connect($host,$user,$password,$bdd);
 // Check connection
 if (mysqli_connect_errno()){
   echo "<br><b>ERROR !</b> Failed to connect to MySQL: " . mysqli_connect_error();
  exit();
 }
 ?>
 


<?php 
//----------------------------------------------------------------------------//
// Fichier :voiture.php 
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//


//Affichage des erreurs PHP si il y en a
error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.bdd";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
<html xmlns="[http://www.w3.org/1999/xhtml]">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Document sans titre</title>
  <script src="jquery.js"></script>
 </head>
 <body>
  
 <form>
 <select name="nmarque" id="idm">
 <option></option> 
 <?php 
   $result = mysqli_query($idcon,"select * from marque_voiture");
  while($row = mysqli_fetch_array($result)){
   echo"<option value=".$row['id_marque'].">".$row['nom_marque']."</option>";  
  }
   mysqli_close($idcon);
 ?>
 </select>
 <div id="mm"></div>
 </form>
  
  
 </body>
</html>

<script type="text/javascript">
 $(document).ready(function() {
  $('#idm').change(function() {
   var idv = $(this).val(); 
   $.ajax({
    type: 'POST',
    dataType : "json",
    url: "d_voiture.php",
    data: {idv: idv },
    success: function(msgn){
        $('#mm').html(msgn);
     },
        error: function(xhr, status, error) {
              var err = eval("(" + xhr.responseText + ")");
              alert(err.Message);
           }   
    });
  }); 
 });
</script>




<?php 
//----------------------------------------------------------------------------//
// Fichier :d_voiture.php  
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//

//Affichage des erreurs PHP si il y en a
error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.bdd";

//récupération propre des variables :
$idv = !empty($_POST['idv']) ? $_POST['idv'] : NULL;

if($idv){
 $sql = "DELETE 
         FROM voiture 
          WHERE id_voiture='$idv'";
     
  $result = mysqli_query($idcon,$sql);
 
 if(!$result){
   $result .= "<b>Query error :</><br> $sql <br> <b>Error:</b> <br> " . mysql_error();
  } 
}

 //Retourne le résultat au format JSON
 echo json_encode($result); 



Cordialement, 
Jordane                                                                 
1
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
Modifié par iMech le 12/12/2015 à 10:46
merci bien pour votre réponse


il manque le fichier
marque.php
celui qui sert à l'affichage des caractéristiques des voitures selon leur marques

ou se trouve un lien SUPP ( dans le tableau) pour supprimer une ligne

et ce l'objectif 2 de mon exercice




bien sure j'exige PHP+Ajax+Jquery
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
12 déc. 2015 à 13:24
Tu as testé mon code tel quel ???
Ca donne quoi ?
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 13:38
oui je l'ai testé
1- le script voiture.php connecte à la base et m'affiche dans une select les 3 marques des voitures que j'ai dans la base " parfait

2- par contre d_voiture.php affiche un message d'erreur , il ne connait pas $result

comme je vous ai dis il manque le script marque.php

je cherche un affichage similaire à l'imprime écran poster
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
Modifié par jordane45 le 12/12/2015 à 16:54
Je viens de relire tes codes .....
donc.. en effet... il manquait une étape.

Voila qui devrait être mieux :

La page de connexion à la BDD
<?php
//----------------------------------------------------------------------------//
// Fichier : CNX.bdd
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//
$host = "localhost";
$user = "root";
$password = "";
$bdd = "basevoiture";

 $idcon = mysqli_connect($host,$user,$password,$bdd);
 // Check connection
 if (mysqli_connect_errno()){
   echo "<br><b>ERROR !</b> Failed to connect to MySQL: " . mysqli_connect_error();
  exit();
 }
 ?>
 


Ta page principale : voiture.php
<?php 
//----------------------------------------------------------------------------//
// Fichier :voiture.php 
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//


//Affichage des erreurs PHP si il y en a
error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.bdd";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
<html xmlns="[http://www.w3.org/1999/xhtml]">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Document sans titre</title>
  <script src="jquery.js"></script>
 </head>
 <body>
  
 <form>
 <select name="nmarque" id="idm">
 <option></option> 
 <?php 
   $result = mysqli_query($idcon,"select * from marque_voiture");
  while($row = mysqli_fetch_array($result)){
   echo"<option value=".$row['id_marque'].">".$row['nom_marque']."</option>";  
  }
   mysqli_close($idcon);
 ?>
 </select>
 <div id="mm"></div>
 </form>
  
  
 </body>
</html>

<script type="text/javascript">
 $(document).ready(function() {
  $('#idm').change(function() {
    //on actualise le tableau "mm"
  var action ="GET_VOITURE_MARQUE";
  var idv = $("#idm").val(); 
    $.ajax({
       type: 'POST',
       dataType : "json",
       url: "voiture.ajx.php",
       data: {action:action,idv: idv },
       success: function(msgn){
          $('#mm').html(msgn.RES);
       },
      error: function(xhr, status, error) {
             var err = eval("(" + xhr.responseText + ")");
             alert(err.Message);
      }   
    });
 });
 
 
function deleteVoiture(idv){ 
 var response = confirm("Voulez-vous vraiment supprimer l'article?");
  /* si la réponse est non */
 if(!response) {
  return false; /* ANNULE LE CLICK et donc le href */
 }else{
  var action ="DELETE_VOITURE";
   $.ajax({
    type: 'POST',
    dataType : "json",
    url: "voiture.ajx.php",
    data: {action:action,idv: idv },
    success: function(msgn){
      alert(" Suppression ok !");
             $('#TR_'+idv).remove();
     },
     error: function(xhr, status, error) {
           var err = eval("(" + xhr.responseText + ")");
           alert(err.Message);
    }   
    
   });
  }  
}
</script>




Et pour finir .. le fichier PHP AJAX (voiture.ajx.php) qui est appellé dans tes scripts javascript ajx;


<?php 
//----------------------------------------------------------------------------//
// Fichier :voiture.ajx.php  
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//

//Affichage des erreurs PHP si il y en a
error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.bdd";


$result=array();

//récupération propre des variables :
$ACTION = !empty($_POST['action']) ? $_POST['action'] : NULL;
   $idv = !empty($_POST['idv']) ? $_POST['idv'] : NULL;

switch($ACTION){

 case "DELETE_VOITURE":
  $sql = "DELETE 
      FROM voiture 
      WHERE id_voiture='$idv'";   
  $query = mysqli_query($idcon,$sql);  
  if(!$query){
   $result['RES'] = "<b>Query error :</b><br> $sql <br> <b>Error:</b> <br> " . mysql_error();
  }else{
   $result['RES'] = true;
  }
  break;
 case "GET_VOITURE_MARQUE":
    $sql = "SELECT * FROM voiture where id_marque ='$idv' ";
   $query = mysqli_query($idcon,$sql);
    if(!$query){
     $result['RES'] = "<b>Query error :</b><br> $sql <br> <b>Error:</b> <br> " . mysql_error();
  }else{
   $rows ="";
    while($row1 = mysqli_fetch_array($query)){
     $id_voiture = $row1['id_voiture'];
         $rows .= "<tr id='TR_$id_voiture'>
                <td>".$row1['matricule']."</td>
                   <td>".$row1['couleur']."</td>
          <td>".$row1['km']."</td>
          <td>".$row['nom_marque']."</td>
          <td><a class='delete' href='#' onclick='deleteVoiture($id_voiture);'>sup</a></td>
          </tr>";
      } 
   $result['RES'] = $rows;
  }
 break;
 
 default:
   $result = $_POST;
 break;
}

  mysqli_close($idcon);
 //Retourne le résultat au format JSON
 echo json_encode($result); 






Cordialement, 
Jordane                                                                 
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 15:08
encore une fois un merci

j'ai testé votre code après juste corrigé deux petites erreur
"" case "default": dans la ligne 60 du script voiture.ajx.php
et j'ai ajouté }); à la ligne 90 du script voiture.php

sinon le premier script fonctionne ( j'ai un affichage dans mon select)

mais toujours le 2 script sa marche pas
lorsque je le test seul il m'affiche juste un accolade []
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720 > iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015
Modifié par jordane45 le 12/12/2015 à 16:54

mais toujours le 2 script sa marche pas
lorsque je le test seul il m'affiche juste un accolade []

Que veux tu dire ?
Le deuxième ? le DELETE tu veux dire ?
Ben... il n'affiche rien celui là ..... il doit juste supprimer la ligne dans ta BDD.....

AU pire modifier le fichier ajx.php comme ceci (pour la partie DELETE)
case "DELETE_VOITURE":
  $sql = "DELETE 
      FROM voiture 
      WHERE id_voiture='$idv'";   
  $query = mysqli_query($idcon,$sql);  
  if(!$query){
   $result['RES'] = "<b>Query error :</b><br> $sql <br> <b>Error:</b> <br> " . mysql_error();
  }else{
   $result['RES'] = "Suppression de la voiture : id :$idv => OK";
  }
  break;
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 15:32
1- je lance le fichier voiture.php je dois avoir un sélect qui contient trois voitures - c'est le cas j'ai mes trois voiture
2- maintenant si je sélectionne une des ces chois alors là je dois avoir un tableau comme l'imprime écran poster ci-dessus qui contient supp qui déclenchera la suppression

j'espère que vous m'avez compris
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720 > iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015
12 déc. 2015 à 15:38
Je viens de voir que ton mm .. n'est qu'une DIV ... hors.. tu veux y mettre des TR/TD .... il ta faut donc y mettre un tableau

CHange donc ta div :
 <div id="mm"></div>


par :
 <div id="div_mm">
  <table id='mm'>
   <thead>
   <tr>
       <th>matricule</th>
       <th>couleur</th>
       <th>Km</th>
        <th>nom_marque</th>
        <th> Del.</th>
   </tr> 
   </thead>
   <tbody  id = 'mm'>

   </tbody>
   </table>
  </div>
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 15:49
dsl sa marche toujours pas
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
Modifié par jordane45 le 12/12/2015 à 16:32
Dans l'ajax, peux tu ajouter un concole.log et me dire ce que ça te donne ?

$(document).ready(function() {
  $('#idm').change(function() {
    //on actualise le tableau "mm"
  console.log("on actualise le tableau mm"); //le temps des tests
  var action ="GET_VOITURE_MARQUE";
  var idv = $("#idm").val(); 
    $.ajax({
       type: 'POST',
       dataType : "json",
       url: "voiture.ajx.php",
       data: {action:action,idv: idv },
       success: function(msgn){
          console.log(msgn); // console.log le temps des tests
          $('#mm').html(msgn.RES);
       },
      error: function(xhr, status, error) {
             var err = eval("(" + xhr.responseText + ")");
             alert(err.Message);
      }   
    });
 });




=> ça devrait afficher des choses dans la CONSOLE de ton navigateur ( à condition que tu utilises FireFox ou GoogleChrome )
Au passage... je t'invite fortement à installer le plugin firebug (pour Firefox).
Ca permet de plus facilement deboguer les erreurs éventuelles de javascript et de visualiser plus facilement les éléments de la console. )
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 16:41
avec firbug

SyntaxError: expected expression, got '<'


( <br />

voiture.php ligne1 col 1
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
12 déc. 2015 à 17:01
Visiblement il y a quelques erreurs de syntaxe...
Déjà, dans le fichier ajx.php ... j'ai oublié un "b" (après le error: ) au niveau des lignes :
 $result['RES'] = "<b>Query error :</><br> $sql <br> <b>Error:</b> <br> " . mysql_error();

A corriger par :
 $result['RES'] = "<b>Query error :</b><br> $sql <br> <b>Error:</b> <br> " . mysql_error();


Dans ta page principale, il manque également la fermeture de la fonction document ready
 $(document).ready(function() {
  $('#idm').change(function() {
    //on actualise le tableau "mm"
		var action ="GET_VOITURE_MARQUE";
		var idv = $("#idm").val(); 
    $.ajax({
       type: 'POST',
       dataType : "json",
       url: "voiture.ajx.php",
       data: {action:action,idv: idv },
       success: function(msgn){
          $('#mm').html(msgn);
       },
      error: function(xhr, status, error) {
             var err = eval("(" + xhr.responseText + ")");
             alert(err.Message);
      }   
    });
 });
 
}); // fin du document ready


Corrige déjà ces erreurs et revérifies à nouveau
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 17:12
oui j'ai corrigé ces erreur dé le début
mais toujours sa fonctionne pas


SyntaxError: expected expression, got '<'


( <br />



voiture.php (ligne 1, col. 2)
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 17:21
j'ai remarqué dans la console firbug que cet erreur n'apparaît que lorsque je sélectionne mes deux premier chois , renaut et peugeaut sinon si je sélectionne mercedes je n'ai aucune message d'erreur dans la console

bon dans ma base de donnée j'ai aucune ligne pour mercedes
par contre pour les autre j'ais plusieurs insertion
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 17:44
dsl

0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
12 déc. 2015 à 17:52
Il doit y avoir un pb de balise , d'accolade, de parenthèse ou de ";" manquant (ou en trop...)
Faut tout regarder.....

Par contre, tu me confirmes bien que tu as pris les codes que je t'ai donné tels quels et que tu n'y a rien modifié hein ?
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 18:02
oui bien sur
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 18:06


<?php
//----------------------------------------------------------------------------//
// Fichier :voiture.php
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//


//Affichage des erreurs PHP si il y en a error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script src="jquery.js"></script>
<script type="text/javascript"></script>

<script>
$(document).ready(function() {
$('#idm').change(function() {
//on actualise le tableau "mm"
var action ="GET_VOITURE_MARQUE";
var idv = $("#idm").val();
$.ajax({
type: 'POST',
dataType : "json",
url: "voiture.ajx.php",
data: {action:action,idv: idv },
success: function(msgn){
console.log ("Retour ajax ok ");
console.log (msgn.RES);
$('#mm').html(msgn.RES);
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
});


function deleteVoiture(idv){
var response = confirm("Voulez-vous vraiment supprimer l'article?");
/* si la réponse est non */
if(!response) {
return false; /* ANNULE LE CLICK et donc le href */
}else{
var action ="DELETE_VOITURE";
$.ajax({
type: 'POST',
dataType : "json",
url: "voiture.ajx.php",
data: {action:action,idv: idv },
success: function(msgn){
alert(" Suppression ok !");
$('#TR_'+idv).remove();
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}

});
}
}
});
</script>



</head>
<body>

<form>
<select name="nmarque" id="idm">
<option></option>
<?php
$result = mysqli_query($idcon,"select * from marque_voiture");
while($row = mysqli_fetch_array($result)){
echo "<option value=".$row['id_marque'].">".$row['nom_marque']."</option>";
}
mysqli_close($idcon);
?>
</select>
<div id="div_mm">
<table id='mm'>
<thead>
<tr>
<th>matricule</th>
<th>couleur</th>
<th>Km</th>
<th>nom_marque</th>
<th> Del.</th>
</tr>
</thead>
<tbody id = 'mm'>

</tbody>
</table>
</div>
</form>


</body>
</html>





<?php 
//----------------------------------------------------------------------------//
// Fichier :voiture.ajx.php
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//

//Affichage des erreurs PHP si il y en a error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.php";


$result=array();

//récupération propre des variables :
$ACTION = !empty($_POST['action']) ? $_POST['action'] : NULL;
$idv = !empty($_POST['idv']) ? $_POST['idv'] : NULL;

switch($ACTION){

case "DELETE_VOITURE":
$sql = "DELETE
FROM voiture
WHERE id_voiture='$idv'";
$query = mysqli_query($idcon,$sql);
if(!$query){
$result['RES'] = "<b>Query error :</b><br /> $sql <br> <b>Error:</b> <br /> " . mysql_error();
}else{
$result['RES'] = "Suppression de la voiture : id :$idv => OK";
}
break;
case "GET_VOITURE_MARQUE":
$sql = "SELECT * FROM voiture where id_marque ='$idv' ";
$query = mysqli_query($idcon,$sql);
if(!$query){
$result['RES'] = "<b>Query error :</b><br /> $sql <br> <b>Error:</b> <br /> " . mysql_error();
}else{
$rows ="";
while($row1 = mysqli_fetch_array($query)){
$id_voiture = $row1['id_voiture'];
$rows .= "<tr id='TR_$id_voiture'><td>".$row1['matricule']."</td>
<td>".$row1['couleur']."</td><td>".$row1['km']."</td>
<td>".$row['nom_marque']."</td>
<td><a class='delete' href='#' onclick='deleteVoiture($id_voiture);'>sup</a></td></tr>";
}
$result['RES'] = $rows;
}
break;

case "default":
$result = $_POST;
break;
}

mysqli_close($idcon);
//Retourne le résultat au format JSON
echo json_encode($result);
0
jordane45 Messages postés 38359 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 décembre 2024 4 720
Modifié par jordane45 le 12/12/2015 à 18:18
BOn, je me suis décidé à le faire sur mon poste ...

et donc voila... là comme ça ça fonctionne :

FIchier de connexion à la BDD : CNX.bdd.php
<?php
//----------------------------------------------------------------------------//
// Fichier : CNX.bdd.php
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//
$host = "localhost";
$user = "root";
$password = "root";
$bdd = "basevoiture";

 $idcon = mysqli_connect($host,$user,$password,$bdd);
 // Check connection
 if (mysqli_connect_errno()){
   echo "<br><b>ERROR !</b> Failed to connect to MySQL: " . mysqli_connect_error();
  exit();
 }
 ?>
 


FIchier voiture.php
<?php 
//----------------------------------------------------------------------------//
// Fichier :voiture.php 
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//


//Affichage des erreurs PHP si il y en a
error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd
require_once "CNX.bdd.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Document sans titre</title>
  <script src="jquery.js"></script>
 </head>
 <body>
  
 <select name="nmarque" id="idm">
 <option></option> 
 <?php 
   $result = mysqli_query($idcon,"select * from marque_voiture");
  while($row = mysqli_fetch_array($result)){
   echo "<option value=".$row['id_marque'].">".$row['nom_marque']."</option>";  
  }
   mysqli_close($idcon);
 ?>
 </select>
<div id="div_mm">
  <table id='tbl_mm'>
   <thead>
   <tr>
       <th>matricule</th>
       <th>couleur</th>
       <th>Km</th>
        <th>nom_marque</th>
        <th> Del.</th>
   </tr> 
   </thead>
   <tbody  id='mm'>

   </tbody>
   </table>
  </div>
 
  
 </body>
</html>

<script type="text/javascript">
 $(document).ready(function(){
   $('#idm').change(function(){
     //on actualise le tableau "mm"
   var action ="GET_VOITURE_MARQUE";
   var id_marque = $("#idm").val(); 
     console.log("choix marque");
    $.ajax({
        type: 'POST',
        dataType : "json",
        url: "voiture.ajx.php",
        data: {action:action,id_marque: id_marque },
        success: function(msgn){
           $('#mm').html(msgn.RES);
        },
       error: function(xhr, status, error) {
             console.log ("erreur !");
        var err = status + " : " +xhr.responseText;
              alert(err.Message);
       }   
     });
 });
 
}); // fin du document ready
 
function deleteVoiture(idv){ 
 var response = confirm("Voulez-vous vraiment supprimer l'article?");
  /* si la réponse est non */
 if(!response) {
  return false; /* ANNULE LE CLICK et donc le href */
 }else{
  var action ="DELETE_VOITURE";
   $.ajax({
    type: 'POST',
    dataType : "json",
    url: "voiture.ajx.php",
    data: {action:action,idv: idv },
    success: function(msgn){
     alert(" Suppression ok !");
        $('#TR_'+idv).remove();
     },
     error: function(xhr, status, error) {
           var err = eval("(" + xhr.responseText + ")");
           alert(err.Message);
    }   
    
   });
  }  
}
</script>


Le fichier ajx.php

<?php 
//----------------------------------------------------------------------------//
// Fichier :voiture.ajx.php  
// Fichier de connexion à la BDD à inclure lorsque tu en as besoin
//----------------------------------------------------------------------------//

//Affichage des erreurs PHP si il y en a
error_reporting(E_ALL); //le temps du dev !

//connexion à la bdd 
require_once "CNX.bdd.php";


$result=array();

//récupération propre des variables :
$ACTION = !empty($_POST['action']) ? $_POST['action'] : NULL;
   $idv = !empty($_POST['idv']) ? $_POST['idv'] : NULL;
$id_marque = !empty($_POST['id_marque']) ? $_POST['id_marque'] : NULL;

switch($ACTION){

 case "DELETE_VOITURE":
  $sql = "DELETE 
      FROM voiture 
      WHERE id_voiture='$idv'";   
  $query = mysqli_query($idcon,$sql);  
  if(!$query){
   $result['RES'] = "<b>Query error :</b><br> $sql <br> <b>Error:</b> <br> " . mysql_error();
  }else{
   $result['RES'] = true;
  }
  break;
 case "GET_VOITURE_MARQUE":
    $sql = "SELECT * FROM voiture where id_marque ='$id_marque' ";
   $query = mysqli_query($idcon,$sql);
    if(!$query){
     $result['RES'] = "<b>Query error :</b><br> $sql <br> <b>Error:</b> <br> " . mysql_error();
  }else{
   $rows ="";
    while($row1 = mysqli_fetch_array($query)){
     $id_voiture = $row1['id_voiture'];
     $id_marque = $row1['id_marque'];
         $rows .= "<tr id='TR_$id_voiture'>
                <td>".$row1['matricule']."</td>
                   <td>".$row1['couleur']."</td>
          <td>".$row1['km']."</td>
          <td>".$id_marque."</td>
          <td><a class='delete' href='#' onclick='deleteVoiture($id_voiture);'>sup</a></td>
          </tr>";
      } 
   $result['RES'] = $rows;
  }
 break;
 
  default:
   $result = $_POST;
 break;
}

  mysqli_close($idcon);
 //Retourne le résultat au format JSON
 echo json_encode($result); 


... par contre, il a fallu modifier aussi un peu ta BDD....
Dans ta table VOITURE .. tu ne dois pas stocker le NOM_MARQUE .... mais uniquement son ID.

=> Structure des tables (plus exemples )

-- --------------------------------------------------------
-- Hôte:                         127.0.0.1
-- Version du serveur:           5.5.8-log - MySQL Community Server (GPL)
-- Serveur OS:                   Win32
-- HeidiSQL Version:             8.1.0.4545
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

-- Export de la structure de table basevoiture. marque_voiture
DROP TABLE IF EXISTS `marque_voiture`;
CREATE TABLE IF NOT EXISTS `marque_voiture` (
  `id_marque` int(11) NOT NULL AUTO_INCREMENT,
  `nom_marque` text,
  PRIMARY KEY (`id_marque`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- Export de données de la table basevoiture.marque_voiture: ~0 rows (environ)
/*!40000 ALTER TABLE `marque_voiture` DISABLE KEYS */;
REPLACE INTO `marque_voiture` (`id_marque`, `nom_marque`) VALUES
 (1, 'peugeot'),
 (2, 'Mercedes');
/*!40000 ALTER TABLE `marque_voiture` ENABLE KEYS */;


-- Export de la structure de table basevoiture. voiture
DROP TABLE IF EXISTS `voiture`;
CREATE TABLE IF NOT EXISTS `voiture` (
  `id_voiture` int(11) NOT NULL AUTO_INCREMENT,
  `matricule` varchar(50) NOT NULL DEFAULT '0',
  `couleur` varchar(50) NOT NULL DEFAULT '0',
  `km` varchar(50) NOT NULL DEFAULT '0',
  `id_marque` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id_voiture`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- Export de données de la table basevoiture.voiture: ~0 rows (environ)
/*!40000 ALTER TABLE `voiture` DISABLE KEYS */;
REPLACE INTO `voiture` (`id_voiture`, `matricule`, `couleur`, `km`, `id_marque`) VALUES
 (1, 'cqsd', 'ROUGE', '0', 1),
 (2, 'aaaaa', 'BLEU', '0', 1),
 (3, 'xxxx', 'JAUNE', '0', 2);
/*!40000 ALTER TABLE `voiture` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;




Cordialement, 
Jordane                                                                 
0
iMech Messages postés 13 Date d'inscription vendredi 11 décembre 2015 Statut Membre Dernière intervention 12 décembre 2015 1
12 déc. 2015 à 18:29
merci infiniment
sa fonctionne très bien
0