J'ai une liste de contacts comme ceci.JQuery ajax div
NameOfContact Accept
NameOfContact2 Accept
......
Où "Accepter" est un lien. Lorsque je clique sur "Accepter", je veux envoyer une requête ajax avec l'identifiant du contact. Lorsque l'appel ajax revient, il doit supprimer le lien Accepter et afficher le résultat.
Donc, si je clique sur Accept bouton de contact 2 le résultat devrait être:
NameOfContact Accept
NameOfContact2 Added
......
Im en utilisant les urls amicaux par exemple d'accepter un contact l'URL est:
/action/accept/12345
où 12 345 est l'identifiant du contact.
Mon html est comme ça (Im génère le code HTML dynamiquement côté serveur c'est à quel point le résultat devrait ressembler):
John
<div id="choice">
<a id="accept" name="accept" href='/action/accept/12345'>Accept</a>
</div>
Kate
<div id="choice">
<a id="accept" name="accept" href='/action/accept/55555'>Accept</a>
</div>
Et mon Jquery est comme ceci:
$(document).ready(function(){
$('#accept').click(function(e){
e.preventDefault();
sendAcceptRequest(e.target, e);
});
});
function sendAcceptRequest(target, e){
$.post(target,
function(data){
$('#choice').html(data);
}, "html");
}
Mon problème est que je ne sais pas comment faire la différence entre plusieurs divs de choix. Je sais que je peux ajouter l'identifiant comme ceci 'choice12345' mais je voudrais dans la fonction sendAcceptRequest obtenir le parent de e (le parent de l'href, c'est l'élément div) et ajouter le résultat à ce div, mais je ne savoir comment obtenir le parent de e et ajouter le résultat. Des idées?
Une chose non liée à votre question est que vous ne devriez pas utiliser les requêtes GET pour modifier les données (comme dans votre URL implique que je pouvais montrer mon navigateur à l'URL/acction/accepter/1234 et la base de données être modifié) vous devez utiliser le verbe POST pour les requêtes qui modifient les données – Jaime