如何在网格视图中添加空文本框并获取输入值并保存在文本文件中?

时间:2019-06-13 07:49:05

标签: yii2

在yii2 crud应用程序中,我添加了一个表格并具有一些值,它显示为表格。我需要添加一个与每个条目相对应的空文本框,并在其中执行功能。

我已经添加了两个按钮(即,用于执行某些功能的读写),我无法添加空文本框,并且此按钮也将我带到了另一页,现在我需要一个空文本框,以便用户可以在其中写入值如果单击“写入”按钮,则值应存储在变量中,然后可以将其写入文本文件。

我在视图文件夹中的索引是:

['class' => 'yii\grid\ActionColumn',
              'template' => '{update}{delete}{read}{write}',
              'buttons' => [
                'delete' => function ($url, $model) {
                    return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [
                    'title' => Yii::t('app', 'delete'),
                    ]);
                },
                'update' => function ($url, $model) {
                    return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
                    'title' => Yii::t('app', 'update'),
                    ]);
                },
                 'read' => function ($url, $model) {
                    return Html::a('Read', $url, [
                    'title' => Yii::t('app', 'read'),
                    ]);
                },
                'write' => function ($url, $model) {
                    return Html::a('write', $url, [
                    'title' => Yii::t('app', 'write'),
                    ]);
                },
                ],



  I need to add text box and get the value from  user without using db.

1 个答案:

答案 0 :(得分:0)

您可以使用Ajax发送Text Box的值。或按或...
以下示例:创建一个空文本框(引导程序)并通过form发送
还创建一个读取按钮以加载读取操作。 更改网址还有两种方法。由urlCreator或..


注意:要将Text Box发送给您要执行的操作,请将第一个参数更改为beginForm

<?=Html::beginForm(['action'],'post'); ?>  // form action
<?= GridView::widget([
  'dataProvider' => $dataProvider,
  'columns' => [
      ['class' => 'yii\grid\CheckboxColumn'],
      'id',
      // 'test',

      ['class' => 'yii\grid\ActionColumn', 'buttonOptions' => ['style'=>'float:left; margin: 6px;'],
        // 'contentOptions' => ['class' => td tag..],
        'template' => '{update}{delete}{read}{write}',
        'buttons' => [
        'read' => function ($url, $model) {
            return Html::a('<span class="glyphicon glyphicon-saved"></span>',
            yii\helpers\Url::to(['read', 'id' => $model->id]), [   // default URL : $url
            'title' => Yii::t('app', 'reed'),
                'style' => 'float:left;margin: 6px;',
            ]);
        },

           'write' => function ($url, $model) {
              return Html::beginTag('div', ['class'=>'input-group has-primary has-feedback', 'style' => 'float:unset; margin-left:55px;'])
              .Html::tag('span', '<i class="glyphicon glyphicon-saved"></i>', ['class' => 'input-group-addon'])
              .Html::textInput("write[$model->id]",'', ['label' => 'sss' ,'class' => 'form-control input-sm'])
              .Html::tag('div', Html::submitButton('Write',  ['id'=>"smt",'class' =>'btn btn-primary btn-sm']), ['class' => 'input-group-btn'])
              . Html::endTag('div');
            },
          ],

         // 'urlCreator' => function ($action, $model, $key, $index) {  // You also can change URLs
         //   if ($action === 'read') {
         //        $url ='read?id='.$model->id;
         //        return $url;
         //    }elseif ($action === 'write') {
         //        $url ='write?id='.$model->id;
         //        return $url;
         //    }
         //  }
      ],
    ],
]); ?>

<?= Html::endForm();?> 

如果您使用 Pjax ,则必须放置'data-pjax' => ''


还可以使用$.ajax通过点击事件或更改事件发送输入...

在控制器中:

  if ( \Yii::$app->request->post() ) {
        print_r(\Yii::$app->request->post());
        #code...