2016-10-18 2 views
0

Я новичок здесь может кто-нибудь сказать мне, как получить проверенный идентификатор записи из индекса для удаления выбранных записей с использованием Ajax и Jquery это моя форма и Ajax скрипт для выбора этого код не делает никаких действий, так дайте мне знатьЯ хочу, чтобы получить проверили несколько идентификатор записи в yii2

<div class="usermaster-model-index"> 
    <input type="button" class="btn btn-info pull-right" value="Delete Multiple" id="MyButton" > 
    <h1><?= Html::encode($this->title) ?></h1> 
    <?php 
    ?> 
    <p> 
     <?= Html::a('Create Usermaster Model', ['create'], ['class' => 'btn btn-success']) ?> 
    </p> 
    <?= 
    GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     //'class' => ActionColumn::className(), 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 
      'user_fname', 
      'user_id', 
      'user_lname', 
      'user_mobile', 
      ['class' => 'yii\grid\ActionColumn'], 
      [ 'class' => 'yii\grid\CheckboxColumn', 
       'checkboxOptions' => ["attribute" => 'user_id'], 
      ], 
     ], 
    ]); 
    ?> 
</div> 

<script> 
    $(document).ready(function() { 
     $('#MyButton').click(function() { 
      alert('hello'); 
      var HotId = $('#user_id').yiiGridView('getSelectedRows'); 
      $.ajax({ 
       type: 'POST', 
       cache: false, 
       url: Url::toRoute('usermaster/MultipleDelete'), 
       data: {user_id: HotId}, 
       success: function() { 
       $(this).closest('tr').remove(); 
       } 
      }); 

     }); 
    }); 
</script> 

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

public function actionMultipleDelete() 
{ 
    $data = Yii::$app->request->post('user_id'); 
    foreach ($data as $key => $value) 
    { 
     $sql = "DELETE FROM usermaster WHERE user_id = $value"; 
     $query = Yii::$app->db->createCommand($sql)->execute(); 
    } 
    return $this->redirect(['index']); 
} 
+0

Вы пытались распечатать массив 'HotId', используя console.log (HotId)?. Что он отображает –

+0

да nitin я попробовал, но он не работает. У меня есть идентификатор id также в gridview. – sms

ответ

1

в вашем GridView оных id вариант

GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'id'=> your-id //set your id here and use this is in jquery 
     //'class' => ActionColumn::className(), 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 
      'user_fname', 
      'user_id', 
      'user_lname', 
      'user_mobile', 
      ['class' => 'yii\grid\ActionColumn'], 
      [ 'class' => 'yii\grid\CheckboxColumn', 
       'checkboxOptions' => ["attribute" => 'user_id'], 
      ], 
     ], 
    ]); 

и Jquery заменить user_id с новым идентификатором следующим образом.

<script> 
    $(document).ready(function() { 
     $('#MyButton').click(function() { 
      alert('hello'); 
      var HotId = $('#your-id').yiiGridView('getSelectedRows'); // modify this line 
      $.ajax({ 
       type: 'POST', 
       cache: false, 
       url: Url::toRoute('usermaster/MultipleDelete'), 
       data: {user_id: HotId}, 
       success: function() { 
       $(this).closest('tr').remove(); 
       } 
      }); 

     }); 
    }); 
</script> 
+0

Я получаю предупреждение, но не получаю id – sms

+0

@sms: он работает сейчас? если да, пожалуйста, примите ответ, чтобы тот, кто отвечает, узнал об этом, и он также поможет другим. –

+0

нет еще не застрял здесь – sms

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