web-dev-qa-db-fra.com

Passer des paramètres à une fonction JQuery

Je crée du HTML avec une boucle qui a une colonne pour Action. Cette colonne est un lien hypertexte qui, lorsque l'utilisateur clique dessus, appelle une fonction JavaScript et transmet les paramètres ...

exemple:

<a href="#" OnClick="DoAction(1,'Jose');" > Click </a>
<a href="#" OnClick="DoAction(2,'Juan');" > Click </a>
<a href="#" OnClick="DoAction(3,'Pedro');" > Click </a>
...
<a href="#" OnClick="DoAction(n,'xxx');" > Click </a>

Je veux que cette fonction appelle une fonction Ajax jQuery avec les paramètres corrects.

De l'aide?

50
jmpena

Utilisation de POST

function DoAction( id, name )
{
    $.ajax({
         type: "POST",
         url: "someurl.php",
         data: "id=" + id + "&name=" + name,
         success: function(msg){
                     alert( "Data Saved: " + msg );
                  }
    });
}

Utiliser GET

function DoAction( id, name )
{
     $.ajax({
          type: "GET",
          url: "someurl.php",
          data: "id=" + id + "&name=" + name,
          success: function(msg){
                     alert( "Data Saved: " + msg );
                   }
     });
}

MODIFIER:

Un meilleur moyen de le faire qui fonctionnerait (avec GET) si le javascript n’était pas activé serait de générer l’URL du href, puis d’utiliser un gestionnaire de clics pour appeler cet URL via ajax à la place.

<a href="/someurl.php?id=1&name=Jose" class="ajax-link"> Click </a>
<a href="/someurl.php?id=2&name=Juan" class="ajax-link"> Click </a>
<a href="/someurl.php?id=3&name=Pedro" class="ajax-link"> Click </a>
...
<a href="/someurl.php?id=n&name=xxx" class="ajax-link"> Click </a>

<script type="text/javascript">
$(function() {
   $('.ajax-link').click( function() {
         $.get( $(this).attr('href'), function(msg) {
              alert( "Data Saved: " + msg );
         });
         return false; // don't follow the link!
   });
});
</script>
86
tvanfosson

Si vous voulez faire un appel ajax ou une simple fonction javascript, n'oubliez pas de fermer votre fonction avec le retour false

comme ça:

function DoAction(id, name) 
{ 
    // your code
    return false;
}
4
tanathos
<script type="text/javascript" src="jquery.js">
</script>

 <script type="text/javascript">

  function omtCallFromAjax(urlVariable)
{ 
    alert("omt:"+urlVariable);
     $("#omtDiv").load("omtt.php?"+urlVariable);
}

 </script>

essayez ça marche pour moi

0
Dhiral Pandya

essayez quelque chose comme ça

#vote_links a va attraper tous les identifiants dans les liens de vote div id ...

<script type="text/javascript">

  jQuery(document).ready(function() {
  jQuery(\'#vote_links a\').click(function() {// alert(\'vote clicked\');
    var det = jQuery(this).get(0).id.split("-");// alert(jQuery(this).get(0).id);
    var votes_id = det[0];


   $("#about-button").css({
    opacity: 0.3
   });
   $("#contact-button").css({
    opacity: 0.3
   });

   $("#page-wrap div.button").click(function(){
0
Roko Mise

Voulez-vous passer des paramètres à une autre page ou à la fonction uniquement?

Si seulement la fonction, vous n'avez pas besoin d'ajouter le $ .ajax () tvanfosson ajouté. Ajoutez simplement le contenu de votre fonction à la place. Comme:

function DoAction (id, name ) {
    // ...
    // do anything you want here
    alert ("id: "+id+" - name: "+name);
    //...
}

Cela retournera une boîte d'alerte avec les valeurs id et name.

0
Leandro Ardissone