rru*_*r81 5 php rest laravel blade
我肯定错过了什么.我正在尝试从选择中获取提交,以显示所选项目上的字段.
//the view
{{ Form::open(array('route' => 'user.show', 'name' => "frm_select_client")) }}
{{Form::select('client_id', array('-1' => 'Please select...') + $usersperclient, null, array('class' => 'selectpicker', 'id' => 'client_id', 'name' => 'client_id', "onchange" => "document.frm_select_client.submit();") );}}
{{ Form::close() }}
//routes.php
Route::resource('user', 'UserController');
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来放置URL user/id(user/1901)然后转到UserController :: show().我所看到的所有例子都直接来自节目的链接:
<a class="btn btn-small btn-success" href="{{ URL::to('user/' . $value->id) }}">Show this user</a>
Run Code Online (Sandbox Code Playgroud)
我知道我可以用javascript做到这一点,但我希望以最好的方式做到这一点,因为我可能会这样做很多.希望这很清楚.Thx提前!
编辑:我正在寻找一种方法来格式化表单提交以完成资源丰富的格式,在这种情况下(show/{id} for show).
您必须使用JavaScript触发选择change事件,您可以尝试以下操作:
var select = document.getElementById('client_id');
select.addEventListener('change', function(){
this.form.submit();
}, false);
Run Code Online (Sandbox Code Playgroud)
这将submit是formon change事件,您也可以尝试以下操作:
var select = document.getElementById('client_id');
select.onchange = function(){
this.form.submit();
};
Run Code Online (Sandbox Code Playgroud)
使用jQuery,您可以尝试以下操作:
$('#client_id').on('change', function(e){
$(this).closest('form').submit();
});
Run Code Online (Sandbox Code Playgroud)
或者使用内联事件处理,您可以尝试以下操作(在属性数组中添加):
"onchange" => "this.form.submit()"
Run Code Online (Sandbox Code Playgroud)
上面的代码将产生如下内容:
<select onchange="this.form.submit()">
Run Code Online (Sandbox Code Playgroud)
要生成,url您可以使用以下代码:
{{ Form::open(array('url' => 'user/' . $user->id, 'name' => "frm_select_client")) }}
Run Code Online (Sandbox Code Playgroud)
另外,您可以这样使用route(假定user.show是url的路由名称user/{id}):
{{ Form::open(array('route' => array('user.show', $user->id), 'name' => "frm_select_client")) }}
Run Code Online (Sandbox Code Playgroud)
确保在加载表单时将$user对象传递给您view,方法如下(基本上来自Controller):
public function edit($id)
{
$user = User::find($id);
return View::make('userform')->with('user', $user);
}
Run Code Online (Sandbox Code Playgroud)
由于user id是从中动态选择的,select因此您必须使用JavaScript和设置表单action,id在这种情况下,您可以尝试以下方法:
// Add this line before you submit the form
this.form.action = 'user/' + this.value;
// Now submit
this.form.submit();
Run Code Online (Sandbox Code Playgroud)
或者使用jQuery您可以尝试以下操作:
$('#client_id').on('change', function(e){
var select = $(this), form = select.closest('form');
form.attr('action', 'user/' + select.val());
form.submit();
});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,请将表单保留为action空白,使用像这样的空白字符串url => ''。