2016-10-18 3 views
0

Ich bin neu hier kann jemand sagen, wie aus dem Index für remove ausgewählten Datensatz erhalten geprüft Rekord-ID mit Ajax und JQuery das ist meine Form und Ajax-Skript für diese Auswahl Code nicht jede Handlung nicht so ichbekommt ich mag mir mehrere Datensatz-ID überprüft in 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> 

wissen lassen, und hier meine Controller-Aktion, die

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

Haben Sie versucht, 'HotId' Array mit Hilfe von console.log (HotId) zu drucken? Was zeigt es –

+0

Ja nitin ich versuchte, aber es funktioniert nicht ich habe ID auch in gridview definiert – sms

Antwort

1

In Ihrem gridview add mehrere Datenfunktion löschen, um ausgewählte ID zu erhalten und löschen id Option

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'], 
      ], 
     ], 
    ]); 

und in JQuery ersetzen user_id mit Ihrem neuen id wie folgt.

<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

ich bekomme Alarm, aber nicht bekommen ID – sms

+0

@sms: funktioniert es jetzt? Wenn ja, bitte akzeptiere die Antwort, damit die Person, die antwortet, davon erfährt und anderen auch hilft. –

+0

nein noch nicht immer noch hier stecken – sms