Bonjour à tous,
Je suis un primo-débutant en AJAX ; mais jusqu'ici tout allait bien
Mon objectif est d’afficher dans un fichier php (ref.php) une liste de champs texte d’une table Mysql, et d’éventuellement en supprimer un à un, avec un bouton, de manière asynchrone.
L’affichage de la liste est géré par un fichier «*liste_ref.inc*» ; les données sont contenues dans une variable $lR (id est l’identifiant de l’enregistrement, num son numéro d’ordre sur la page) :
(liste_ref.inc)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 while($lR=$reqR->fetch(PDO::FETCH_ASSOC)) { $liste.="<input type='number' size='3' name='num_ref_".$lR["num"]."' id='num_ref_".$lR["num"]."' value='".$lR["num"]."' class='cssinput'> <img id='del_ref".$lR["id"]."' ref='".$lR["id"]."' class='del_ref' title='Supprimer cette référence' src='../img/button_drop.png'><br> <textarea name='ref_".$lR["num"]."' class='ref'>".html_entity_decode($lR["lib"])."</textarea><div style='height:5px;'></div>"; $next_ref=$lR["num"]; }
(ref.php) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $article=$l["id"]; include("liste_ref.inc"); echo"<div id='liste_ref'>"; echo$liste; echo"</div>";
Pour effectuer la suppression de l’enregistrement «*id*» de manière asynchrone, j’utilise, dans ref.php, une fonction jquery :
Dans le fichier ref_delete.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $(document).ready(function(){ $(".del_ref").click(function(){ var fd = new FormData(); / var ref=$(this).attr('ref'); var article=$('#doss').val(); fd.append('ref',ref); fd.append('article',article); $.ajax({ // instancie implicitement un objet XmlHttpRequest url:'ref_delete.php', success:function(response){ $("#liste_ref").html(response.liste); ...
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php $ref=$_REQUEST['ref']; (exécution dune requête PDO) include("liste_ref.inc"); echo json_encode(array("result"=>"reference ".$ref." de ".$article." supprimée","liste"=>$liste)); ?>
Bref, le code fonctionne… une fois. La nouvelle liste s’affiche, et l’élément concerné est bien supprimé.
MAIS, ensuite, impossible de ré-exécuter une autre suppression, pour un autre élément de la liste.
Une alerte au début de $(".del_ref").click(function() ne se déclenche plus… Pourtant, l’examen de la page ne révèle aucune différence avec l’état initial !
SVP pourriez-vous me donner une idée d’où se situe le problème ?
En vous remerciant, et bien cordialement.
Partager