我正在使用Yii2框架,并且在我的网站上有一个视图,其中元素显示在列表中。现在,该列表由动态打印我的模型中按“位置”整数唯一字段排序的值组成。 我想做的是当用户拖动列表的元素时更改数据库中字段的值。
视图:
/* @var $menu app\models\Menuentry[] */
/* @var $model app\models\Staff */
<ul class="uk-list uk-list-divider">
<?= Html::img($model->image, ['alt'=>'some',
'class'=>'thing',
'height'=>'100',
'width'=>'100'
]);?>
<?php
foreach ($menu as $entry) {
if ($entry->content) { ?>
<li><?= Html::a($entry->content, ['Menuentry/index', 'id' =>$user->id,'page'=>$entry->content], ['data' => ['method' => 'post']]) ?></li>
<?php } // Yii::$app->runAction('MenuEntryController/index', ['string' => $entry->content]);
else { ?>
<li><?= Html::a($entry->link, Url::to($entry->link, true)); ?></li>
<?php }
}
?>
</ul>
控制器:
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
'menu' => Menuentry::findMenuentry($id),
'user' => User::findidentity($id),
]);
}
型号:
/**
* This is the model class for table "menuentry".
*
* @property int $id
* @property string $link
* @property string $content
* @property int $position
* @property bool $is_deleted
* @property int $staff_id
我只需要管理此操作的js代码。我尝试过此方法,但不起作用:
$script = <<<JS
$('#sortlist').sortable({
axis: 'y',
update: function (event, ui) {
var data = $('#sortlist').sortable('serialize');
$.ajax({
type: "POST",
url: "$sorturl",
data: data
});
}
});
JS;
$this->registerJs($script, View::POS_READY);