2017-11-10 11 views
0

私のテーブルにあるカラムの値を表示したいと思います。私はcheckbox columnを入れたGridviewを持っています。チェックボックスをオンにして値を表示するには、選択したチェックボックスの情報を収集するループを使用したjavascriptを配置しました。しかし、ボタンをクリックすると、checkbox IDしか見ることができません。以下は、私がやっていることであるyii2のIDではなくカラムの値を取得する方法

アクション

$sql = "SELECT DISTINCT ms.`meter_msn` AS 'Meter Serial Number', u.`name` AS 'Issued To',ps.`name` AS 'Store' FROM `meters` ms 
INNER JOIN `ogp_header` ogph ON ms.`issued_user` = ogph.`issuer` 
INNER JOIN `project_store` ps ON ogph.`store_id` = ps.`id` 
INNER JOIN `user` u ON `ogph`.`issuer` = u.`id` 
$where AND ms.`meter_status` = 'Installation Ready' AND ogph.`status` IN ('Prepared', 'Canceled') 
ORDER BY ms.`id` DESC " 
$dataProvider = new SqlDataProvider([ 
     'sql' => $sql, // $sql is the resulted query 
     'totalCount' => $count, 
     'pagination' => [ 
       'pageSize' => 30, 
      ], 
    ]); 


    return $this->render('viewcreated', [ 
     'dataProvider' => $dataProvider, 
     'model' => $this->findModel($id), 
     'id'=> $model->id 
     /*'searchModel' => $searchModel*/ 
    ]); 

私の見解では

<?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
      /*'filterModel' => $searchModel,*/ 
      'id'=>'grid', 
     'columns' => [ 

     ['class' => 'yii\grid\CheckboxColumn'], 

     'Meter Serial Number', 
     'Issued To', 
     'Store',   

], 
<button type="button" class="btn btn-success" id="myid">View Selected Rows</button> 

javascript私がクリックしたときに、私は今

$(document).ready(function() {  

$('#myid').click(function() { 

    var strValue = ""; 

    $('input[name="selection[]"]:checked').each(function() { 

    if(strValue!="") 
     { 
     strValue = strValue + " , " + this.value; 

     } 
    else 
     strValue = this.value; 


}); 
    alert(strValue); 
}) }); 

を行っていますボタンはIDしか表示されませんが、Meter Serial Numberの値を表示したいとします。

Here is the view when I click on the button here is the screenshot

私はそれを探したが、任意のヘルプは高く評価されるだろうソリューション

を見つけることができませんしています。

答えて

1

もしあなたがこの要素のhtmlコードを与えることができれば、これはあなたに作業コードを与えるためには良いでしょう。

この値は、この要素のID(各要素に固有のIDに関連する可能性があります)を対象にすることで取得できます。そして、あなたは - > this.value < - 他のコードで変更する必要があります。

if(strValue!="") 
    { 
    strValue = strValue + " , " + this.value; 

    } 
else 
    strValue = this.value; 
+0

私は自分のコードを更新しました。私は列を表示しているクエリを配置しました。クエリは複数のテーブルから設定されます。 –

関連する問題