拖动列表元素时更新位置值

时间:2018-11-23 16:12:00

标签: javascript php yii2

我正在使用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);

0 个答案:

没有答案