2015-10-26 6 views
0

Я создал jquery, чтобы показать модальное окно при создании нового резервирования, и он отлично работал. Но у меня есть некоторые проблемы с определением URL-адреса для действия обновления (у него есть динамический url в соответствии с id). И я определение URL неправильно в этой части:Yii2 Update Action JQuery

$.get('reservation/update',{'id'}, function(data) 

Вот main.js:

$(function() { 

$(document).on('click','.fc-day',function(){ 
var date= $(this).attr('data-date'); 
$.get('?r=reservation/create',{'date':date}, function(data) 
{ 
    $('#modal').modal('show') 
     .find('#modalContent') 
     .html(data); 
    });  
}); 

$(document).on('click','.fc-day-grid-event',function(){ 

    $.get('reservation/update',{'id'}, function(data) 
    { 
     $('#modal').modal('show') 
      .find('#modalContent') 
      .html(data); 
     });  
    }); 

$('#modalButton').click(function(){ 

$('#modal').modal('show') 
.find('#modalContent') 
.load($(this).attr('value')); }); }); 

Здесь вы ActionUpdate в ReservationController:

public function actionUpdate($id) 
{ 
    $model = $this->findModel($id); 

    if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     return $this->redirect(['index']); 
    } else { 
     return $this->renderAjax('update', [ 
      'model' => $model, 
     ]); 
    } 
} 

Резервация Index.php

<?php 

use yii\helpers\Html; 
use yii\grid\GridView; 
use yii\bootstrap\Modal; 

$this->title = 'Reservations'; 
$this->params['breadcrumbs'][] = $this->title; 
?> 

<div class="reservation-index"> 

<h2> &nbsp;<?= Html::encode($this->title) ?></h2> 

<br> 
<?php 
Modal::begin([ 
'header'=>'reservation', 
'id'=>'modal', 
'size'=>'modal-lg', 
]); 

echo "<div id='modalContent'></div>"; 
Modal::end(); 
?> 

<?= \yii2fullcalendar\yii2fullcalendar::widget(array(
    'events'=> $events,)); ?> 

</div> 

Так как я должен разобрать идентификатор параметра от модели к URL?

+0

пытаются поставить идентификатор точно так же, как вы делали это на сегодняшний день. это попытка поместить его в 'data-id' attr элемента, имеющего класс' fc-day-grid-event', а затем извлечь его в событие click – vijayP

ответ

1

Получить свой идентификатор переменной в JavaScript, как: -

$(document).on('click','.fc-day-grid-event',function(){ 
    var id = $(this).attr('id'); 
    $.get('reservation/update',{id : id}, function(data) 
    { 
     $('#modal').modal('show') 
      .find('#modalContent') 
      .html(data); 
     });  
    }); 
+0

Это не работает. Ошибок времени выполнения не задано, а другие скрипты работают , Но этого сценария нет. –

+0

предоставит мне ваш код просмотра .. может быть, вы не используете id ... –

+0

см. Обновленный код @Double H –