📜  如何在 laravel 中直接将数据从 html 传输到控制器 - Html (1)

📅  最后修改于: 2023-12-03 15:08:41.427000             🧑  作者: Mango

如何在 Laravel 中直接将数据从 HTML 传输到控制器

在 Laravel 应用程序中,我们通常通过表单将数据传输到控制器。但是,在某些情况下,我们可能需要在不使用表单的情况下将数据从 HTML 页面传输到控制器。本文将介绍如何在 Laravel 中实现这一目标。

方法一:使用 Ajax 请求

可以使用 Ajax 请求将数据从 HTML 页面传输到控制器。此方法需要使用 JavaScript。

1. 在 HTML 页面中添加 JavaScript

首先,在 HTML 页面中添加 JavaScript,用于将数据传递到控制器。例如,以下代码将创建一个包含数据的对象,并使用 Ajax 请求将该对象发送到控制器:

var data = {
    name: 'John',
    age: 25
};

$.ajax({
    url: '/your-controller-uri',
    type: 'POST',
    data: data,
    success: function(response) {
        // Handle response from server
    }
});
2. 创建控制器方法

然后,您需要在控制器中创建一个方法,以接受通过 Ajax 请求发送的数据。以下是一个示例方法:

public function yourControllerMethod(Request $request)
{
    $name = $request->input('name');
    $age = $request->input('age');

    // Do something with the data

    return response()->json([
        'success' => true
    ]);
}
3. 添加路由

要处理从 HTML 页面发送的 Ajax 请求,您需要将路由添加到应用程序。例如,以下代码将创建一个路由,该路由将调用上述控制器方法:

Route::post('/your-controller-uri', [
    'uses' => 'YourController@yourControllerMethod'
]);
方法二:使用 Query 参数

另一种将数据从 HTML 页面传输到控制器的方法是使用 Query 参数。查询参数是在 URL 中包含的键值对。

1. 在 HTML 页面中添加链接

首先,在 HTML 页面中添加链接,该链接包含您要传输的数据。例如,以下代码将创建一个包含数据的链接:

<a href="/your-controller-uri?name=John&age=25">Submit</a>
2. 创建控制器方法

然后,您需要在控制器中创建一个方法,以接受包含在查询参数中的数据。以下是一个示例方法:

public function yourControllerMethod(Request $request)
{
    $name = $request->query('name');
    $age = $request->query('age');

    // Do something with the data

    return redirect()->back();
}
3. 添加路由

最后,您需要将路由添加到应用程序,以便处理包含查询参数的链接。例如,以下代码将创建一个路由,该路由将调用上述控制器方法:

Route::get('/your-controller-uri', [
    'uses' => 'YourController@yourControllerMethod'
]);
结论

在 Laravel 应用程序中,有多种方法可以将数据从 HTML 页面传输到控制器。本文介绍了两种常见的方法:使用 Ajax 请求和使用查询参数。您可以根据自己的具体需求选择其中任一方法。