Partage
  • Partager sur Facebook
  • Partager sur Twitter

AJAX php Mysql DELETE FROM

    18 octobre 2011 à 22:34:49

    Bonjours à tous,

    par le biais d'un formulaire et d'une requête ajax j'aurais souhaiter supprimer une ligne d'une BDD
    comme ceci:
    Image utilisateur



    Grace à alert(del) je vois que rien n'est définit, quelqu'un pourrait-il m'aiguiller pour que je renseigne/définisse mieux l'id à supprimer?


    J'ai essayer sans succes plusieurs choses, notamment:

    del = $(this).find("input[name=del['.$donnees['id'].']]").val(); dans l'ajax
    de mette dans une variable $donnees['id'] >> $d= $donnees['id']
    ...

    Merci d'avance




    Voici mon code:

    dans le <head>:

    <script type="text/javascript">
    $(function() {
        $("#form2").submit(function(){
                del = $(this).find("input[name=del]").val();
    			alert(del);return false;
                $.ajax({
                    "url" : "delete.php",
                    "type" : "POST",
                    "data" : {"del" : del },
                    "dataType" : "json",
                    "success" : function(){
                     
                    }
                });
                return false;
        });
    });
    </script>
    


    <body>:

    <?php
    include"connect.php";
    $sql = 'SELECT * FROM base WHERE label= "graphisme" ORDER BY id DESC';
    $q = mysql_query($sql);
    
    
    echo '<form method="post" action="#" id="form2" >';
    while($donnees = mysql_fetch_array($q)) {
    
    	echo $donnees['titre']." : ". $donnees['texte'];
    	echo '<input type="submit" name="del['.$donnees['id'].']" value="supprimer" /> <br />';
    	}
    	echo '</form>';
    ?>
    


    Page delete.php:
    <?php
    	include"connect.php";
    	if(isset($_POST['del']))
    	
        foreach($_POST['del'] as $key => $value) 
    	{
    	mysql_query ('DELETE FROM base WHERE id = '.(int)$key);
    	}
    ?>
    
    page
    
    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2011 à 10:55:36

      Bonjours

      J'ai du mal à voir ce que fait ta question dans le forum Java...

      $(this).find("input[name=del['.$donnees['id'].']]") ne peut pas sélectionner ton input car name n'est pas égale à del mais à del[####]

      Tu devrais dissocier le submit du champs de donner en ajoutant un input hidden pour stoquer ta valeur :
      <?php
      echo '<input type="hidden" name="del" value="'.$donnees['id'].'" /> <br />';
      echo '<input type="submit" value="supprimer" /> <br />';
      ?>
      
      • Partager sur Facebook
      • Partager sur Twitter
        20 octobre 2011 à 14:38:59

        effectivement je me suis trompé de section.. mais je n'ai pas trouvé le moyen de le replacer au bon endroit après coup. Désolé, je ferais plus attention la prochaine fois.

        Chaque entrée est suivi d'un input submit en vue de pouvoir les supprimer.

        Mais l'alert(del) renvoie pour toutes les entrées l'ID de la première entrée, plutôt que de renvoyer l'ID correspondante à son entrée. une idée...?

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
        $(function() {
            $("#form2").submit(function(){
                    del = $(this).find("input[name=del]").val();
        			alert(del);return false;     
            });
        });
        </script>
        


        </head>

        <body>

        <?php
        include"connect.php";
        $sql = 'SELECT * FROM base WHERE possesseur= "florent" ORDER BY id DESC';
        $q = mysql_query($sql);
        echo '<ul>';
        	echo '<form method="post" action="#" id="form2" >';
        	while($donnees = mysql_fetch_array($q)) {
        		echo '<li>';
        			echo $donnees['nom'].' : '. $donnees['console'].' id: '.$donnees['ID'];
        			echo '<input type="hidden" name="del" value="'.$donnees['ID'].'" /> ';
        			echo '<input type="submit" value="supprimer" />';
        		echo '</li>';
        	}
         echo '</ul>';
        echo '</form>';
        ?>
        
        • Partager sur Facebook
        • Partager sur Twitter
          21 octobre 2011 à 12:33:50

          Tu pourrais copier le code source de la page généré par PHP ?
          Et aussi ce que tu à dans ton alert ?

          On y verra plus clair.

          Pour le placement du Sujet, un modo s'en est charger. ;)
          • Partager sur Facebook
          • Partager sur Twitter
            21 octobre 2011 à 16:16:18

            On m'a aiguiller pour résoudre mon problème,
            je générais un submit pour chaque entrée et je ne savais pas qu'on ne pouvait avoir qu'un submit par formulaire. Il fallait donc préférer un bouton, le bon code est donc:

            <?php
            include"connect.php";
            $sql = 'SELECT * FROM base WHERE possesseur= "florent" ORDER BY id DESC';
            $q = mysql_query($sql);
            echo '<ul>';
                echo '<form method="post" action="#" id="form2" >';
                while($donnees = mysql_fetch_array($q)) {
                    echo '<li>';
                        echo $donnees['nom'].' : '. $donnees['console'].' id: '.$donnees['ID'];
                        echo '<input type="button" name="del" id="'.$donnees['ID'].'" value="Supprimer" /> ';
                    echo '</li>';
                }
             echo '</ul>';
            echo '</form>';
            ?>
            



            Il me manque plus qu'a trouver ce que je récupere dans ma page delete.php de la part de:


            <script type="text/javascript">
            $(function() {
                $("#form2").submit(function(){
                        del = $(this).find("input[name=del]").val();
                        $.ajax({
                            "url" : "delete.php",
                            "type" : "POST",
                            "data" : {
                                "del" : del
                            }
                            "dataType" : "json",
                            "success" : function(){
                             }
                        });
                        return false;
                });
            });
            </script>
            



            car

            mysql_query ('DELETE FROM base WHERE ID = '.(int)$del);
            


            ne marche pas.
            • Partager sur Facebook
            • Partager sur Twitter

            AJAX php Mysql DELETE FROM

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown