54 Stimmen

Übergabe von Parametern an eine JQuery-Funktion

Ich erstelle HTML mit einer Schleife, die eine Spalte für Aktion enthält. Diese Spalte ist ein Hyperlink, der, wenn der Benutzer darauf klickt, eine JavaScript Funktion aufruft und die Parameter übergibt...

Beispiel:

<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>

Ich möchte, dass diese Funktion eine Ajax jQuery-Funktion mit der richtigen Parametern aufrufen.

Gibt es Hilfe?

94voto

tvanfosson Punkte 506878

Verwendung von POST

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

GET verwenden

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

EDIT:

Ein, vielleicht, besserer Weg, dies zu tun, die funktionieren würde (mit GET), wenn Javascript nicht aktiviert wurden, wäre die URL für die Href zu generieren, dann verwenden Sie einen Klick-Handler, um diese URL über Ajax statt aufrufen.

<a href="http://stackoverflow.com/someurl.php?id=1&name=Jose" class="ajax-link"> Click </a>
<a href="http://stackoverflow.com/someurl.php?id=2&name=Juan" class="ajax-link"> Click </a>
<a href="http://stackoverflow.com/someurl.php?id=3&name=Pedro" class="ajax-link"> Click </a>
...
<a href="http://stackoverflow.com/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>

5voto

tanathos Punkte 5486

Wenn Sie einen Ajax-Aufruf oder eine einfache Javascript-Funktion ausführen möchten, vergessen Sie nicht, Ihre Funktion mit dem Return-False zu schließen

wie diese:

function DoAction(id, name) 
{ 
    // your code
    return false;
}

0voto

Leandro Ardissone Punkte 2889

Möchten Sie Parameter an eine andere Seite oder nur an die Funktion übergeben?

Wenn nur die Funktion, brauchen Sie nicht, um die $.ajax() tvanfosson hinzugefügt. Fügen Sie stattdessen einfach Ihren Funktionsinhalt hinzu. Wie:

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

Dies führt zu einer Alert-Box mit den Werten id und name.

0voto

Roko Mise Punkte 1

Versuchen Sie etwas wie dies

#vote_links a fängt alle IDs innerhalb von Vote-Links 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(){

0voto

Dhiral Pandya Punkte 9709
<script type="text/javascript" src="jquery.js">
</script>

 <script type="text/javascript">

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

 </script>

Versuchen Sie dies, es funktioniert bei mir

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X