如何在yii2中获得价值下拉

时间:2018-04-25 08:40:14

标签: javascript html yii2

我正在尝试使用Yii2应用程序。 我想在yii 2中制作高级图表。这些高级图表将根据下拉列表中的输入而改变。 我无法从下拉列表中检索值以在showby函数中使用。 如何从下拉列表中检索值?

这是我的代码控制器。

public function actionIndex()
{
    $searchModel = new kntnRPemesananSearch();
    $options =  new RBarangSearch();

$data = Yii::$app->db->createCommand('select week(tanggal)+1 as tanggal,harga,nama from kntn_r_barang_masuk where nama = "beras" group by tanggal')->queryAll();
//print_r($data);
return $this->render('index', ['ddiagram' => $data,'model'=> $searchModel,'opt'=>$options]);

}

public function actionShowBy($nama_barang){
    $searchModel = new kntnRPemesananSearch();
    $options =  new RBarangSearch();

$data = Yii::$app->db->createCommand('select week(tanggal)+1 as tanggal,harga,nama from kntn_r_barang_masuk where nama ="'.$nama_barang.'" group by tanggal')->queryAll();
//print_r($data);
return $this->render('index', ['ddiagram' => $data,'model'=> $searchModel,'opt'=>$options]);

}

}

这是我的代码视图



<div class="form_pemesanan">
<?php $form = ActiveForm::begin(); ?>
   <div class="field_input">
       <?= $form->field($opt, 'nama_barang')->dropDownList(ArrayHelper::map(RBarang::find()->all(),'nama_barang','nama_barang'),['prompt'=>'Barang']); 
       ?>
       
       <?= Html::a('Pilih', ['grafik/show-by','nama_barang'=>$opt->nama_barang], ['class'=>'btn btn-primary']) ?>
    </div>

    <div class="field_input col-sm-offset-11">
    <?
    
    ?>
       
    </div>
<?php ActiveForm::end(); ?>
</div>
&#13;
&#13;
&#13;

如何从下拉列表中检索值并将值从下拉列表发送到函数showby? 谢谢。

1 个答案:

答案 0 :(得分:0)

我建议使用Pjax,如下:

控制器:

public function actionAbout()
{
    return $this->render('about', ['time' => time(), 'data' => null]);
}

public function actionAbout2()
{
    return $this->renderPartial('about', ['time' => time(), 'data' => Yii::$app->request->post() ]);
}

视图:

<hr>
<?php Pjax::begin(['enablePushState' => false]) ?>
<form data-pjax="" method="POST" action="<?= Url::to(['site/about2']) ?>">
    <input type="text" name="test" value="<?= $time; ?>">
    <br>
    <code>post data: <?= print_r($data, true); ?></code>
    <br>
    <input type="submit">
</form>
<?php Pjax::end() ?>

这里发生的是:

  1. Pjax中的初始渲染代码
  2. 使用&#39; data-pjax =&#34;&#34;&#39;
  3. 标记表单(或链接)
  4. 现在您可以选择更改表单的操作
  5. submit现在将替换Pjax所包含的HTML
  6. read more here