首页 > 解决方案 > 在 jquery 中的 cakephp 2.x 中创建下载链接

问题描述

我必须创建动态 html 下载链接,但我在 jquery 部分中获得了文件名和文件夹名称。那么如何将 $id 和 $filename 从 jquery 传递到输入字段,或者是否有任何其他方式直接在 jquery 中使用 cakephp 创建动态 html 链接。?

      <td class="broucher">
      </td>

我试图为此使用 Jquery,但它不起作用并且出现意外的标识符错误。

 var html='';
 var filename=ui.item.brouchersFile;
 var id=ui.item.brouchersId;
 html = '<?php echo $this->Html->Link("",array("controller"=> "download","action"=>"brochures",${id},${filename}),array("class"=>"fa fa-download fa-fw","download"=>${filename},"title"=>"Download"));  ?>' ;
 $(elmt).find(".broucher").append("<span class='msgspan'>${html}</span>");

标签: javascriptjquerycakephpcakephp-2.0

解决方案


您可以定义隐藏字段来访问基本 url,然后在 jquery 中使用相同的字段为您想要的操作创建链接。

$this->Form->input('webroot', ['type' => 'hidden', 'id' => 'webroot', value=>$this->request->webroot]);

然后在你的jquery中使用它,如下所示

 var html='';
 var filename=ui.item.brouchersFile;
 var id=ui.item.brouchersId;
 var webroot= $("#webroot").val();
 html = '<a href="'+webroot+'/download/brochures/'+id+'/'+filename+'" class="fa fa-download fa-fw" download>Download</a>';
 $(elmt).find(".broucher").append("<span class='msgspan'>"+html+"</span>");

推荐阅读