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'>
	&nbsp;&nbsp;<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 :
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);
                          ...
Dans le fichier ref_delete.php

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
$ref=$_REQUEST['ref'];

(exécution d’une 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.