Lien pour supprimer une ligne dans un table avec PHP+AJAX+Jquery
Résolu
iMech
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
iMech Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
iMech Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
bonsoir;
mon problème lorsque je clique sur le lien supp ,aucune modification sur ma table
voilà trois page
1: voiture.php
2: marque.php
3: d_voiture.php
est ce que je dois préparer de nouveau l'appelle ajax sinon ou?
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:
- Lien pour supprimer une ligne dans un table avec PHP+AJAX+Jquery
- Supprimer rond bleu whatsapp - Guide
- Créer un lien pour partager des photos - Guide
- Table ascii - Guide
- Supprimer une page dans word - Guide
- Lien url - Guide
7 réponses
Bonjour,
Essayes ça :
Cordialement,
Jordane
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
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
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
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
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
Je viens de relire tes codes .....
donc.. en effet... il manquait une étape.
Voila qui devrait être mieux :
La page de connexion à la BDD
Ta page principale : voiture.php
Et pour finir .. le fichier PHP AJAX (voiture.ajx.php) qui est appellé dans tes scripts javascript ajx;
Cordialement,
Jordane
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
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 []
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 []
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;
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
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
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 :
par :
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>
dsl sa marche toujours pas


Dans l'ajax, peux tu ajouter un concole.log et me dire ce que ça te donne ?
=> ç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. )
$(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. )
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 :
A corriger par :
Dans ta page principale, il manque également la fermeture de la fonction document ready
Corrige déjà ces erreurs et revérifies à nouveau
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
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
bon dans ma base de donnée j'ai aucune ligne pour mercedes
par contre pour les autre j'ais plusieurs insertion
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
<?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);
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
FIchier voiture.php
Le fichier ajx.php
... 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 )
Cordialement,
Jordane
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