Ré-exécution d'une fonction AJAX
Bonjour à tous,
Je suis un primo-débutant en AJAX ; mais jusqu'ici tout allait bien :mrgreen:
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:
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:
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:
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:
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.