jQuery-Script/Methode zum Anstoßen von Downloads
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 23 Apr 2013 12:42:13 +0000 (14:42 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 25 Apr 2013 12:38:14 +0000 (14:38 +0200)
SL/Form.pm
js/jquery.download.js [new file with mode: 0644]

index 5af4dc2..d1d4315 100644 (file)
@@ -475,7 +475,7 @@ sub header {
   );
 
   $layout->use_javascript("$_.js") for (qw(
-    jquery jquery-ui jquery.cookie jqModal jquery.checkall
+    jquery jquery-ui jquery.cookie jqModal jquery.checkall jquery.download
     common part_selection switchmenuframe
   ), "jquery/ui/i18n/jquery.ui.datepicker-$::myconfig{countrycode}");
 
diff --git a/js/jquery.download.js b/js/jquery.download.js
new file mode 100644 (file)
index 0000000..54ffb6a
--- /dev/null
@@ -0,0 +1,19 @@
+jQuery.download = function(url, data, method) {
+  //url and data options required
+  if (!url || !data)
+    return;
+
+  //data can be string of parameters or array/object
+  data = typeof data == 'string' ? data : jQuery.param(data);
+  //split params into form inputs
+  var form = jQuery('<form action="'+ url +'" method="'+ (method||'post') +'"></form>');
+  jQuery.each(data.split('&'), function(){
+    var pair  = this.split('=');
+    var input = jQuery('<input type="hidden"/>');
+    input.attr('name', decodeURIComponent(pair[0]));
+    input.val(decodeURIComponent(pair[1]));
+    input.appendTo(form);
+  });
+  //send request
+  form.appendTo('body').submit().remove();
+};