Laravel-验证错误后从动态选择菜单返回输入

Laravel - Return with input from a dynamic select menu after validation error

本文关键字:选择 菜单 返回 输入 动态 验证 错误 Laravel-      更新时间:2023-09-26

我有几个选择菜单,它们是通过从另一个菜单中选择一个选项来动态填充的。

因为这些是动态填充的,如果表单没有通过验证,Laravel的withInput函数不会返回所选的数据。

有没有一种方法可以从动态创建的字段数据中返回Input?

这是我构建选择菜单的java脚本

$('.admin-select').change(function() {
    $.getJSON("/locations/getlocationslist/"+$(this).val(), function(data) {
        var location = $('#location');
        location.empty();
        $.each(data, function(index, element) {
            location.append("<option value='"+ element.id +"'>" + element.name + "</option>");
        });
        $.one(location.prepend("<option>- Select -</option>"));
    });
});

这是获取菜单数据的功能:

public function getlocationslist($id)
{
    $company = Company::find($id); 
    $locations = $company->locations();
    return Response::make($locations->get(['id','name']));
}

在我的用户控制器存储功能中,我检查验证:

$this->userNewForm->validate(Input::all());

然后错误处理程序:

App::error(function(Laracasts'Validation'FormValidationException $exception, $code)
{
return Redirect::back()->withInput()->withErrors($exception->getErrors());
});

由于位置选择菜单是通过AJAX动态创建的,因此Laravel在重新加载页面时没有预先选择的选项。

但是,您可以检查.admin-select的页面加载是否选择了一个选项,如果选择了,则执行ajax调用以填充动态下拉列表并选择相关选项。