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
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
A voir également:
- Lien pour supprimer une ligne dans un table avec PHP+AJAX+Jquery
- Table ascii - Guide
- Créer un lien pour partager des photos - Guide
- Supprimer une page word - Guide
- Table des matières word - Guide
- Lien url - Guide
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
Modifié par jordane45 le 12/12/2015 à 02:22
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
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
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
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
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
12 déc. 2015 à 13:24
Tu as testé mon code tel quel ???
Ca donne quoi ?
Ca donne quoi ?
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
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
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
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
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
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
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
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 []
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 []
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
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;
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
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
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
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
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 :
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>
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
12 déc. 2015 à 15:49
dsl sa marche toujours pas
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
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 ?
=> ç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. )
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
12 déc. 2015 à 16:41
avec firbug
SyntaxError: expected expression, got '<'
( <br />
voiture.php ligne1 col 1
SyntaxError: expected expression, got '<'
( <br />
voiture.php ligne1 col 1
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
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 :
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
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
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)
mais toujours sa fonctionne pas
SyntaxError: expected expression, got '<'
( <br />
voiture.php (ligne 1, col. 2)
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
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
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
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
12 déc. 2015 à 17:44
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
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 ?
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 ?
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
12 déc. 2015 à 18:02
oui bien sur
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
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);
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
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
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
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
12 déc. 2015 à 18:29
merci infiniment
sa fonctionne très bien
sa fonctionne très bien