2010-10-06 4 views
0

Je souhaite effectuer des appels POST Ajax lorsque les utilisateurs cliquent sur des liens textuels. Une manière de le faire est de créer de nombreux formulaires et de faire du bouton de soumission un lien texte. Ensuite, avec jQuery, je vais chercher les variables du formulaire et les soumettre avec Ajax.App appels AJAX avec des liens textuels

Cela va créer quelque chose comme ce qui suit:

<form><input type="hidden" name="unique-id" value="1"><a href="" class="submitForm"></form> 
<form><input type="hidden" name="unique-id" value="2"><a href="" class="submitForm"></form> 
<form><input type="hidden" name="unique-id" value="3"><a href="" class="submitForm"></form> 

Maintenant, avec jQuery, je vais utiliser .cliquez() Gestionnaire d'événements et d'envoyer une requête POST avec la valeur « -id unique » (du champ d'application dans lequel le lien de clic était de).

Cela semble très compliqué et désordonné et je me demandais s'il y avait une meilleure façon de le faire.

Merci

Joel

Répondre

1

Vous n'avez pas besoin d'un formulaire pour faire un poste Ajax, vous nourrissez les données dans le même appel Ajax:

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success 
    dataType: dataType 
}); 

Voir: http://api.jquery.com/jQuery.post/

0

Vérifiez Ajaxify Jquery plugin en utilisant la nouvelle fonctionnalité de soumission de formulaires, il est très facile à utiliser et à nettoyer

1

Pourquoi ne pas simplement utiliser "id unique" comme identifiant pour les liens et utiliser cet identifiant lors de la publication.

<a id="1" href="#">Link</a> 
<a id="2" href="#">Foo</a> 
<a id="3" href="#">ASDF</a> 


<script type="text/javascript"> 
    $(function() { 
     $("a").click(function(evt) { 
      evt.preventDefault(); 
      $.ajax({ 
       type: "POST", 
       url: url, 
       data: "unique-id=" + $(evt.target).attr("id"), 
       success: function(data) { 
        alert("done"); 
       } 
      }); 
     }); 
    }) 
</script> 
+0

La réponse la plus propre jusqu'ici obtient mon vote –