2009-06-16 5 views
1

Ich möchte eine URL von einem onclick -Ereignis aufrufen und POST-Variablen übergeben. Ich möchte dies nicht über versteckte Eingaben und eine Formularübermittlung tun. Natürlich möchte ich das mit jQuery machen.Verwenden von JQuery zum Ausführen einer GET-Anfrage mit POST-Variablen

Die URL muss in ein Popup-Fenster geladen werden.

Die Frage, wie ich ein jquery Neuling bin, ist wie?

+0

Warum möchten Sie nicht Formular senden/versteckte Eingabe verwenden? Ich denke, es wird generell empfohlen, dies zu tun, weil es eine bessere Wartbarkeit ermöglicht. –

+0

Wie sind versteckte Felder besser zu pflegen? Ich erinnere mich nicht an die spezifische Aufgabe, für die ich das verwenden wollte, aber ich bin ziemlich sicher, dass der Grund dafür, versteckte Felder nicht zu verwenden, war, dass alle meine Daten in Javascript-Variablen gespeichert wurden. –

Antwort

3

Schauen Sie sich die $.post Funktion an. Dadurch wird eine AJAX-Anfrage an die von Ihnen gewählte URL gesendet. Im Gegensatz zu einer normalen Formularübertragung wird die aktuelle Seite jedoch nicht neu geladen oder geändert.


Bearbeiten, um Kommentare zu reagieren:
Sie es für jede Variable durch dynamisches Erstellen eines Formulars mit einem versteckten Eingang frisieren konnte. Setzen Sie das Ziel des Formulars auf "_blank" und senden Sie es dann, und das sollte Ihre andere Seite in einem neuen Fenster öffnen.

$('#myLink').click(function() { 
    var $f = $('<form></form>') 
     .attr({ 
      method : 'post', 
      target : '_blank', 
      action : 'myOtherPage.php' 
     }) 
     .appendTo(document.body) 
    ; 
    var myHiddenVariables = { 
     id : 17, 
     name : "Joe Bloggs" 
    }; 
    for (var i in myHiddenVariables) { 
     $('<input type="hidden" />') 
      .attr({ 
       name : i, 
       value : myHiddenVariables[i] 
      }) 
      .appendTo($f) 
     ; 
    } 
    $f[0].submit(); 
    return false; 
}); 
+0

Ich sah das an. Ich glaube nicht, dass ich es in dieser Situation schaffen würde. Ich muss eine Datei in ein Popup-Fenster herunterladen. –

0

Im Folgenden wird ein AJAX-Post mit zwei Parametern auf dem Server erstellt. In der Callback-Funktion öffnet es ein Popup und füllt es mit dem zurückgegebenen HTML.


$("#aLink").click(function() 
{ 
    $.post("some_url", {param1:"foo", param2:"bar"}, function(html) 
    { 
     newWindow= window.open ("","newwindow","menubar=1,resizable=1,width=350,height=250"); 
     newWindow.document.write(html); 
    }); 

    return false; 
}); 

+0

Vergessen Sie nicht, false von Ihrem Click-Function-Handler zurückzugeben, sobald alles gesagt und getan ist! (Um Seitensprünge zu vermeiden) – Funka

Verwandte Themen