jquery - 如何在 Laravel 中将数组从 Controller 发送到 JavaScript?

标签 jquery laravel

有数据需要从 Controller 发送到 View 。根据我的阅读,这是执行此操作的方法,但警报不会在页面中显示任何内容。 这是我在 Controller 中使用的方法:

public function provider() {
    $sites = array(
    0 => "Mon", 
    1 => "Tue", 
    2 => "Wed", 
    3 => "Thu",
    4 => "Fri", 
    5 => "Sat",
    6 => "Sun",);
    return ($sites);
}

这是我在 View 中使用的 javascript 片段:

<script type="text/javascript">
    function provider() {
        $.ajax({
            type: "POST",
            url: '/resultsprovirder',
            cache: false,
            success: function() {
                alert(data);
                alert("success");
            },
            error: function() {
                alert(data);
                alert("error");
            }
        });
     };
</script>

还有比AJAX更安全的方法吗?

最佳答案

首先你的代码结构如果错误。让我们尝试一个简单的例子。

示例

在 Laravel 这样的 MVC 框架中,您应该定义路由:

yourproject/app/HTTP/routes.php

Route::get('/' ,PageController@home);

现在让我们构建我们的 Controller :在您的终端(Windows 中的 cmd)中:
php artisan make:controller PageController

以及您的类中的 Controller 文件(yourproject/app/http/controllers/PageController.php):

public function home()
    {
        $sites = array(
            0 => "Mon",
            1 => "Tue",
            2 => "Wed",
            3 => "Thu",
            4 => "Fri",
            5 => "Sat",
            6 => "Sun",);
        return view('home',['Sites' => $sites] );// This Line says that your home view is in yourproject/resources/views/home.blade.php and pass $Sites to that file
    }


最后在 yourproject/resources/views/home.blade.php 中:

<script>
    var sites= @json($Sites);//@json is Blade shortcode for json_encode
</script>

现在您可以在页面 js 中使用您的 sites var!
当您希望在服务器和客户端之间交换数据而不刷新所有页面并且不用于在第一次加载时从 Controller 发送数据时,可以使用 Ajax!并在括号中:如果你想在 laravel 中使用 ajax,你应该设置 AjaxSetup 以避免 CSRF 攻击。在你的 ajax 请求之前:

 $.ajaxSetup({
                  headers: {
                      'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
                  }

这是将 var 发送到您的 View 的最安全的方式。希望这对您有帮助,
祝你好运,穆罕默德

关于jquery - 如何在 Laravel 中将数组从 Controller 发送到 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51713575/

相关文章:

php - Laravel 和 Simpletest

php - 使用 put/post 将数据发送到 Laravel 中的 Web 服务

javascript - 将 jQuery Post 发送到 API 时出现 Access-Control-Allow-Origin 错误

javascript - 浏览器重新格式化我的 HTML,导致不同的外观

php - 在一个进程中在不同表中插入和更新

php - Laravel 一条语句中的多个迁移表

php - 如何将我的 Controller 移动到 Laravel 5.2 中的单独包文件夹中?

javascript - 这个 JavaScript 错误是什么意思?

javascript - 如何获取 HTML 按钮值以作为参数传递给我的 javascript?

php - laravel 5如何将数据传递到 Controller 到模型