Php 更改Laravel时保存选择值
我正在使用Laravel构建一个多语言应用程序,我需要用户能够登录并从选择字段中选择他们的首选语言(表“语言”),并且只需从字段中选择即可将其存储在数据库中(“表“用户”中的“语言id”)。我目前不知道如果没有表单和提交按钮,我怎么能做到这一点。有人能给我解释一下我该怎么做吗 控制器:所有可用语言都存储在一个变量中,并发送到所有视图Php 更改Laravel时保存选择值,php,laravel,laravel-5,controller,views,Php,Laravel,Laravel 5,Controller,Views,我正在使用Laravel构建一个多语言应用程序,我需要用户能够登录并从选择字段中选择他们的首选语言(表“语言”),并且只需从字段中选择即可将其存储在数据库中(“表“用户”中的“语言id”)。我目前不知道如果没有表单和提交按钮,我怎么能做到这一点。有人能给我解释一下我该怎么做吗 控制器:所有可用语言都存储在一个变量中,并发送到所有视图 namespace App\Http\Controllers; use App\Language; use Illuminate\Foundation\Bus\D
namespace App\Http\Controllers;
use App\Language;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\View;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function __construct()
{
$languages = Language::all();
View::share('languages', $languages);
}
}
菜单选择:用通过控制器发送的语言填充选择字段的foreach循环
<li>
<select class="form-control" id="language" name="language">
@foreach ($languages as $language)
<option value="{{ $language->id }}">{{ $language->name }}</option>
@endforeach
</select>
</li>
@foreach($languages作为$language)
{{$language->name}
@endforeach
数据库:“用户”表具有“语言id”以下是如何做到这一点的简要想法: 在select框的change事件中,激发一个AJAX调用并将值存储到数据库表中
如果您不知道如何编码,请告诉我。可以为您提供简短的代码。以下是如何做到这一点的简要想法: 在select框的change事件中,激发一个AJAX调用并将值存储到数据库表中
如果您不知道如何编码,请告诉我。可以为您提供简短的代码。我假设用户登录后,您将其中一种语言显示为默认语言。在那之后,试着做一些事情,比如: Jquery:
$('#language').change(function(){
// make an ajax call and save the selected language option
// in the user table under the `language_id` column
// and change the language of pages when selection changed
});
在每次登录时,获取
language\u id
的值,并根据该值显示所选语言选项。您还可以在会话中保留该值,以管理整个应用程序中的下拉状态。我假设用户已登录,您将其中一种语言显示为默认语言。在那之后,试着做一些事情,比如:
Jquery:
$('#language').change(function(){
// make an ajax call and save the selected language option
// in the user table under the `language_id` column
// and change the language of pages when selection changed
});
在每次登录时,获取language\u id
的值,并根据该值显示所选语言选项。您还可以在会话中保留该值,以管理整个应用程序中的下拉状态。您必须将该数据保存在某个位置。在一些cookie或会话中。如果你想在Laravel中管理它,我建议使用AJAX
call,这样你就可以在你的应用程序中处理它。Eather将其保存在会话或cookie中
另一种方法是使用javascript,而不是在加载页面并设置语言时读取相同的cookie
在这两种情况下,每次用户加载页面时都需要中间件来设置语言 您必须将数据保存到某个地方。在一些cookie或会话中。如果你想在Laravel中管理它,我建议使用AJAX
call,这样你就可以在你的应用程序中处理它。Eather将其保存在会话或cookie中
另一种方法是使用javascript,而不是在加载页面并设置语言时读取相同的cookie
在这两种情况下,每次用户加载页面时都需要中间件来设置语言 那么语言选择是登录表单的一部分?那么语言选择是登录表单的一部分?