webentwicklung-frage-antwort-db.com.de

Parameter an eine JQuery-Funktion übergeben

Ich erstelle HTML mit einer Schleife, die eine Spalte für Action enthält. Diese Spalte ist ein Hyperlink, der beim Klicken des Benutzers 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 den richtigen Parametern aufruft.

Irgendeine Hilfe?

50
jmpena

Verwenden des POST

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

Mit GET

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

BEARBEITEN:

Ein vielleicht besserer Weg, dies zu tun, der funktionieren würde (mit GET), wenn Javascript nicht aktiviert wäre, wäre, die URL für die href zu generieren und diese URL stattdessen mit einem Click-Handler über Ajax aufzurufen.

<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

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

so was:

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>

versuch das es bei mir funktioniert

0
Dhiral Pandya

versuche so etwas

#vote_links a fängt alle IDs in Abstimmungslinks ab 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

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

Wenn Sie nur die Funktion verwenden, müssen Sie das hinzugefügte $ .ajax () - Tvanfosson nicht hinzufügen. Fügen Sie stattdessen einfach Ihren Funktionsinhalt hinzu. Mögen:

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

Dadurch wird ein Warnfeld mit den Werten für ID und Name zurückgegeben.

0