如何将参数从javascript发送到laravel 5中的控制器?

时间:2015-12-29 23:49:12

标签: javascript laravel laravel-5

我的代码是这样的:

<a href="javascript:;" onclick="showAjaxPdf('{{ $row->file_path }}');"><i class="fa fa-file-pdf-o"></i></a>

我的javascript代码是这样的:

  function showAjaxPdf(file_path){
//example : file_path = assets/images/myfile.pdf
                $.post("news/test", { name: file_path } ); 
            }

我在控制器中的功能测试:

public function postTest($file_path)
    {  
        return response()->download($file_path);       
    }

当我点击pdf图标时,无法将参数从javascript发送到控制器

我希望,点击pdf图标时,显示如下:http://imgur.com/uhPfOWL

谢谢

3 个答案:

答案 0 :(得分:0)

您要发布参数name而不是$file_path

use Illuminate\Http\Request;

public function postTest(Request $request)
{  
    $file_path = $request->input('name');
    return response()->download($file_path);       
}

确保您的$file_path对您的服务器有意义 解析服务器公用文件夹public_path()上的路径将为您提供<driver>/<dir>/<app dir>/public/images/smail.png,然后您可以下载

return response()->download(public_path() + $file_path);

答案 1 :(得分:0)

这是在Laravel 5中检索输入的方法。

public function postTest()
{  
    $file_path = Request::input('name');     // get the value that was posted
    return response()->download($file_path); // return something    
}

此外,我假设您的routes.php文件中有“新闻/测试”路由到postTest

https://laravel.com/docs/master/requests#retrieving-input

https://laravel.com/docs/5.0/routing#basic-routing

答案 2 :(得分:0)

你试过感叹号(!!)吗?

<a href="javascript:;" onclick="showAjaxPdf('{!! $row->file_path !!}')">