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

Résolu
iMech Messages postés 13 Statut Membre -  
iMech Messages postés 13 Statut Membre -
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?

7 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  2. iMech Messages postés 13 Statut Membre 1
     
    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
    1
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Tu as testé mon code tel quel ???
      Ca donne quoi ?
      0
    2. iMech Messages postés 13 Statut Membre 1
       
      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
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
    1. iMech Messages postés 13 Statut Membre 1
       
      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
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > iMech Messages postés 13 Statut Membre
         

        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
    2. iMech Messages postés 13 Statut Membre 1
       
      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
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > iMech Messages postés 13 Statut Membre
         
        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
  4. iMech Messages postés 13 Statut Membre 1
     
    dsl sa marche toujours pas
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
    2. iMech Messages postés 13 Statut Membre 1
       
      avec firbug

      SyntaxError: expected expression, got '<'


      ( <br />

      voiture.php ligne1 col 1
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
    4. iMech Messages postés 13 Statut Membre 1
       
      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
    5. iMech Messages postés 13 Statut Membre 1
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. iMech Messages postés 13 Statut Membre 1
     
    dsl

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
    2. iMech Messages postés 13 Statut Membre 1
       
      oui bien sur
      0
  7. iMech Messages postés 13 Statut Membre 1
     


    <?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
  8. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
    1. iMech Messages postés 13 Statut Membre 1
       
      merci infiniment
      sa fonctionne très bien
      0