[英]Laravel form select option
我有一个带有“创建”,“编辑”和“删除”按钮的登录页面,“编辑”按钮链接到一个选择(下拉)菜单,并且URL的路径是/ events / {number} / edit。
我将如何获取我的URL来以这种格式写入内容,因为页面已经被加载,然后进行了选择。
<div class="col-sm-4">
<form method="get" action="{{ route('events.edit', ['event_id' => '2']) }}">
<label>Event Name</label>
<select name="event_edit" class="form-control form-control-lg">
@foreach($events as $event)
<option>{{$event->event_name}}</option>
@endforeach
</select>
<button type="submit" class="btn btn-primary btn-round">Edit</button>
</form>
</div>
上面的作品,但我必须手动将event_id设置为2,将需要javascript吗?
Route::resource('events', 'EventController');
GET|HEAD | events/{event}/edit | events.edit | App\Http\Controllers\EventController@edit | web
我没有可以测试的larvel实例,只是简单地将PHP设为静态,因此一旦渲染了DOM,就无法使用PHP更新输出,即在下拉列表(或任何元素)为$event->id
时进行操作改变了。 如果需要,您将需要JavaScript。 但是,我会选择一种更直接的方法。
您将需要在控制器上创建通用编辑路径,并将ID放在选项上作为值。
<div class="col-sm-4">
<form method="get" action="{{ route('events.edit') }}">
<label>Event Name</label>
<select name="event_edit" class="form-control form-control-lg">
@foreach($events as $event)
<option value="{{$event->id}}">{{$event->name}}</option>
@endforeach
</select>
</form>
</div>
现在,提交表单后,您将拥有用户想要编辑的事件的ID。 只需使用它即可在控制器中获取事件并呈现该事件的编辑屏幕。 如果您希望将该网址很好地显示为site.com/edit/event/3
则可以使用类似
return redirect()->route('route.name', [$param]);
它应该重定向到以id为参数的路由url,然后执行获取和显示在那里的所有逻辑。
嗯。 我们在这里需要形式动作吗? 这个怎么样:
<div class="col-sm-4">
<form method="get" action="">
<label>Event Name</label>
<select name="event_edit" class="form-control form-control-lg"
onChange="window.location.href='/events/' + this.options[this.selectedIndex].value + '/edit'">
@foreach($events as $event)
<option value="{{$event->id}}">{{$event->name}}</option>
@endforeach
</select>
</form>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.