public function actionSave_post_sort_order() { if (Yii::$app->request->isAjax) { $data = $_POST['data']; $product = $_POST['product']; if (!empty($data)) { $i = 1; foreach ($data as $key) { $Post = ProductPost::find()->where(['product_id' => $product, 'id' => $key])->one(); if (!empty($Post)) { $Post->sort_order = $i; $Post->save(); } $i++; } $response['result'] = 'success'; $response['msg'] = 'Sort Order successfully saved.'; $response['post_list'] = $this->renderAjax('list_of_post', ['product_id' => $product]); } else { $response['result'] = 'error'; $response['msg'] = 'Error saving sort order.'; } return json_encode($response); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = ProductPost::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'created_by' => $this->created_by, 'updated_by' => $this->updated_by, 'product_id' => $this->product_id, 'sort_order' => $this->sort_order]); $query->andFilterWhere(['like', 'post_title', $this->post_title])->andFilterWhere(['like', 'post_desc', $this->post_desc]); return $dataProvider; }
<?php use yii\helpers\Html; use yii\widgets\DetailView; use backend\models\ProductPost; /* @var $this yii\web\View */ /* @var $model backend\models\Post */ ?> <div class="post-view"> <ul class="post_sort"> <?php $posts = ProductPost::find()->where(['product_id' => $product_id])->orderBy('sort_order asc')->all(); if (!empty($posts)) { foreach ($posts as $value) { echo '<li data-id="' . $value->id . '" class="Post_' . $value->id . '">'; echo '<div class="col-md-8">' . $value->post_title . '</div>'; echo '<div class="col-md-4">'; echo '<input type="button" class="btn btn-sm btn-primary view_post_btn" value="View" data_id="' . $value->id . '">'; echo '<input type="button" class="btn btn-sm btn-default update_post_btn" value="Update" data_id="' . $value->id . '" style="margin-left:10px;">'; echo '<input type="button" class="btn btn-sm btn-danger delete_post_btn" value="Delete" data_id="' . $value->id . '" style="margin-left:10px;">'; echo '<span>' . $value->sort_order . '</span>'; echo '</div>'; echo '</li>'; } } ?> </div>