如何使用javascript更新日历的事件详细信息?

时间:2019-09-30 05:26:24

标签: javascript php ajax laravel

我正在尝试在完整日历中更新事件详细信息,问题是我对JavaScript没有太多的经验,我已经可以添加事件,只是我不知道如何更新事件详细信息。

enter image description here

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">&times;</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');

0 个答案:

没有答案