我正在尝试在完整日历中更新事件详细信息,问题是我对JavaScript没有太多的经验,我已经可以添加事件,只是我不知道如何更新事件详细信息。
EventController.php
public function update(Request $request, $id)
{
$ev = event::find($id);
$ev->event_name = $request->input("event_name");
$ev->save();
Session::flash('success', 'Event successfully updated.');
return redirect()->route('event.sched');
}
当我在日历上单击某个事件时,刀片中的代码就会弹出一个模态并获取事件数据,这是我用来编辑事件详细信息的模态
html部分:
<div class="modal none-border" id="my-event">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><strong>Event Details</strong></h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-success save-event waves-effect waves-light">Create event</button>
<button type="button" class="btn btn-danger delete-event waves-effect waves-light" data-dismiss="modal">Delete</button>
</div>
</div>
</div>
</div>
javascript部分:
/* on click on event */
CalendarApp.prototype.onEventClick = function (calEvent, jsEvent, view) {
var $this = this;
var form = $("@if(isset($event)) <form method = 'PATCH' action = '{{ route('event.edit', "+ calEvent.id +") }}' ></form> @endif");
form.append("<input type = 'hidden' name = 'id' id = 'edit_evid' value='"+calEvent.id+"'/>");
form.append("<label>Change event name</label>");
form.append("<div class='input-group'><input class='form-control' id = 'event_name' name = 'event_name' type=text value='" + calEvent.title + "' /><span class='input-group-btn'> <button type='submit' class='btn btn-success waves-effect waves-light'> <i class='fa fa-check'></i> Save</button></span></div>");
$this.$modal.modal({
backdrop: 'static'
});
$this.$modal.find('.delete-event').show().end().find('.save-event').hide().end().find('.modal-body').empty().prepend(form).end().find('.delete-event').unbind('click').click(function () {
$this.$calendarObj.fullCalendar('removeEvents', function (ev) {
return (ev._id == calEvent._id);
});
$this.$modal.modal('hide');
});
$this.$modal.find('form').on('submit', function () {
calEvent.title = form.find("input[type=text]").val();
$this.$calendarObj.fullCalendar('updateEvent', calEvent);
$this.$modal.modal('hide');
return false;
});
},
web.php
Route::get('/sched/edit/{id}','EventCategoryController@update')->name('event.edit');