2016-09-10 6 views
1

В настоящее время я работаю с Laravel Framework. Я отправляю все записи от одного пользователя о событиях, но если у пользователя более одной записи события, ему нужно выбрать, какое событие он хотел бы редактировать, я уже создал модальный, который показывает все события, но как могу ли я получить выбранное событие и заполнить все входы этим конкретным событием? Вот мой кодКак обновить входы на основе модального выбора

Контроллер

public function dashboardEvents(){           
//Brings all the info from the user events        
$data['events'] = UserEvent::where('user_id', Auth::user()->id)->get(); 
//This is to know if there's more than one record 
if(UserEvent::where('user_id', Auth::user()->id)->get()->count()>1) { 
    $data['multiple'] = true;           
} else {                
    $data['multiple'] = false;           
}                  
return view('user-pages/my-events', $data);        

}

Просмотр

<title>User Dashboard</title> 
<body class="html not-front not-logged-in no-sidebars page-node page- 

<!-- Al the Inputs --> 
<select class="form-control" style="margin-bottom: 15px;" id="user_roles"> 
    <option value="bride">I am a bride</option> 
    <option value="groom">Im a groom</option> 
    <option value="groomsman">Im a guest</option> 
    <option value="wedding_planner">Im a wedding planner</option> 
</select> 

<input type="text" class="form-control" style="margin-bottom: 15px;"> 
    <div class="input-group date" data-provide="datepicker" style="margin-bottom: 15px;"> 
    <input type="text" class="form-control"> 
     <div class="input-group-addon"> 
     <span class="glyphicon glyphicon-th"></span> 
     </div> 
</div> 

<select class="form-control" style="margin-bottom: 15px;" id="party-type"> 
    <option id="wedding">Wedding</option> 
    <option id="party">Party</option> 
    <option id="prom">Prom</option> 
</select> 

<select class="form-control" style="margin-bottom: 15px;" id="user-task"> 
    <option>I am shopping for just Groomsmen</option> 
    <option>I am shopping for me</option> 
</select> 

<input type="text" class="form-control" id="phone_number_user" style="margin-bottom: 15px;"> 

<input type="text" class="form-control" id="usr" style="margin-bottom: 15px;" placeholder="New Password"> 

Модальные

<div class="modal fade" id="UserDashboardModal" role="dialog"> 
    <div class="modal-dialog"> 
    <!-- Modal content--> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">Choose an Event to Edit</h4> 
     </div> 
     <div class="modal-body"> 
      <select class="form-control"> 
       @foreach($event as $key=>$cat) 
       <option value="{{ $cat->user_event_id }}">{{ $cat->name }}</option> 
       @endforeach 
      </select> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal" id="modalFromEventButton">Select</button> 
     </div> 
    </div> 
</div> 

Скрипт для открытия модального

<script> 
    $(document).ready(function() { 
     $('#UserDashboardModal').modal('show'); 
    }); 
</script> 

Как я могу получить выбранное событие? И загружать входы автоматически с правильными данными?

+0

http://stackoverflow.com/questions/11179406/jquery-get-value-of-select-onchange Это может помочь. у вас есть значение, вы обновляете все, что хотите –

ответ

0

Я бы немного изменил ваш запрос, так как теперь вы запрашиваете userEvents дважды. Вы можете получить счет от первого набора результатов:

Контроллер:

public function dashboardEvents() 
{           
    // Get all the event ids for the user. 
    $data['events'] = UserEvent::where('user_id', Auth::user()->id)->get(); 
    // Check count. 
    $data['multiple'] = $data['events']->count() > 1 ? true : false; 
    // Return view. 
    return view('user-pages/my-events', $data); 
} 

Обновления лезвия с форменными элементами для формы редактирования, завернутой с идентификатором, соответствующим с userEvent ID ниже выберите в вашем покадрово.

клинка:

<form action="/your/update/route" method="POST"> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
    @foreach($event as $key => $cat) 
     <div id="cat-{{ $cat->user_event_id }}" style="display:none"> 
      <!-- build your form elements for update --> 
     </div> 
    @endforeach 
</form> 

Обновление сценарий с определенным событием окно, в котором вы решаете, какую форму получает показывается пользователю.

Сценарий:

$(document).ready(function() { 

    $('#UserDashboardModal').modal('show'); 

    $('.modal-body select').change(function() { 
     // Get selected userEventId. 
     var userEventId = $('.modal-body select option:selected').val(); 
     // Change your form with $('#cat-' + userEventId) 
     // code... 
    }); 

}); 

Конечная нота: Это может быть лучше для запроса только ID & имени для предварительного заполнения вашего выбора на приборной панели (как пользователь может иметь много userEvents). А затем получить полные данные по отдельному вызову при выборе события пользователем с помощью ajax. Удачи!

+0

Спасибо! Да, это похоже на вариант beter, я мог бы так же сделать это –

Смежные вопросы