Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
yii2-如何从视图到控制器获取下拉选择值_Yii2_Dropdown_Yii2 Advanced App - Fatal编程技术网

yii2-如何从视图到控制器获取下拉选择值

yii2-如何从视图到控制器获取下拉选择值,yii2,dropdown,yii2-advanced-app,Yii2,Dropdown,Yii2 Advanced App,我正在做yii2。在我看来,我有一个按钮,可以下载pdf文件。此外,我还有下拉列表,我想将所选下拉列表值从我的视图传递到控制器。我的索引视图中的下拉列表为 [ 'label' => 'Sub Division Name', 'value' => function ($d) { if(is_object($d->subdiv)) return $d->subdiv

我正在做
yii2
。在我看来,我有一个按钮,可以下载
pdf
文件。此外,我还有下拉列表,我想将所选下拉列表
从我的视图传递到控制器。我的
索引
视图中的下拉列表为

[
            'label' => 'Sub Division Name',
            'value' => function ($d) {
                if(is_object($d->subdiv))
                return $d->subdiv->name;
             return ' - ';
            },
            'filter' => Html::activeDropDownList($searchModel, 'sub_div', \common\models\SurveyHescoSubdivision::toArrayList(), ['prompt' => "Sub-Div", 'class' => 'form-control']),

        ],
将生成
HTML

<select id="meterssearch-sub_div" class="form-control" name="MetersSearch[sub_div]">
<option value="">Sub-Div</option>
<option value="37111" selected="">37111 - HYD SADDAR</option>
<option value="37112">37112 - GARI KHATA</option>
<option value="37113">37113 - SARFARAZ COLONY</option>
<option value="37115">37115 - LIAQAT COLONY</option>
<option value="37141">37141 - TANDO ALLAH YAR-I</option>
<option value="37142">37142 - TANDO ALLAH YAR-II</option>
<option value="37143">37143 - TANDO JAM</option>
<option value="37144">37144 - CHAMBER</option>
<option value="37151">37151 - HALI ROAD</option>
<option value="37152">37152 - RIZVI HOSPITAL</option>
<option value="37153">37153 - ALLAMA IQBAL</option>
<option value="37154">37154 - SH:UMAID ALI KHAN</option>
<option value="37155">37155 - MIRAN M.SHAH</option>
<option value="37181">37181 - QASIMABAD</option>
<option value="37182">37182 - CITIZEN COLONY</option>
<option value="37183">37183 - HIRABAD</option>
<option value="37221">37221 - KOTRI</option>
<option value="37222">37222 - JAMSHORO</option>
<option value="37223">37223 - SHAHBAZ</option>
<option value="37225">37225 - NOORIABAD</option>
<option value="37226">37226 - SEHWAN SHARIF</option>
<option value="37241">37241 - PARETABAD</option>
<option value="37242">37242 - PHULELI</option>
<option value="37243">37243 - ILYASABAD</option>
<option value="37244">37244 - MEMON HOSPITAL</option>
<option value="37251">37251 - T.MUHAMMAD KHAN-I</option>
<option value="37252">37252 - T.MUHAMMAD KHAN-II</option>
<option value="37253">37253 - MATLI</option>
<option value="37254">37254 - BULRISHAH KARIM</option>
<option value="37271">37271 - THATTA</option>
<option value="37272">37272 - SUJAWAL</option>
<option value="37273">37273 - MAKLI</option>
<option value="37281">37281 - BADIN</option>
<option value="37282">37282 - TALHAR</option>
<option value="37283">37283 - GOLARCHI</option>
<option value="37311">37311 - NAWAB SHAH-I</option>
<option value="37312">37312 - NAWAB SHAH-II</option>
<option value="37313">37313 - SOCIETY</option>
<option value="37314">37314 - DAUR</option>
<option value="37315">37315 - SAKRAND</option>
<option value="37316">37316 - SAEEDABAD</option>
<option value="37318">37318 - QAZI AHMED</option> 
<option value="37319">37319 - DAULAT PUR</option>
<option value="37331">37331 - TANDO ADAM-I</option>
<option value="37332">37332 - TANDO ADAM-II</option>
<option value="37333">37333 - ODERO LAL</option>
<option value="37334">37334 - MATIARI</option>
<option value="37335">37335 - HALA</option>
<option value="37336">37336 - BHIT SHAH</option>
<option value="37341">37341 - SANGHAR</option>
<option value="37342">37342 - JHOLE</option>
<option value="37343">37343 - SHAHDAD PUR-I</option>
<option value="37344">37344 - SHAHDAD PUR-II</option>
<option value="37345">37345 - KHIPRO</option>
<option value="37346">37346 - SHAHPUR CHAKAR</option>
<option value="37347">37347 - SINDHRI</option>
<option value="37411">37411 - MIPURKHAS CITY</option>
<option value="37412">37412 - SATELLITE TOWN</option>
<option value="37413">37413 - HIRABAD MPK</option>
<option value="37414">37414 - MIRWAH</option>
<option value="37421">37421 - DIGRI</option>
<option value="37422">37422 - JHUDO</option>
<option value="37423">37423 - NAUKOT</option>
<option value="37424">37424 - MITHI</option>
<option value="37431">37431 - UMERKOT</option>
<option value="37432">37432 - PITHORO</option>
<option value="37433">37433 - SAMARO</option>
<option value="37434">37434 - KUNRI</option>
</select>
GridView

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        'description',
        'meter_msn',
        //'meter_type',
        [
            'label' => 'Meter Type',
            'value' => function ($d) {
                if(is_object($d))
                    return $d->meter_type;
                return ' - ';
            },
            'filter' => Html::activeDropDownList($searchModel, 'meter_type', \app\models\Meters::getMeterTypeValues(), ['prompt' => "Meter Type", 'class' => 'form-control']),

        ],
        //'sub_div',
        [
            'label' => 'Sub Division Name',
            'value' => function ($d) {
                if(is_object($d->subdiv))
                return $d->subdiv->name;
             return ' - ';
            },
            'filter' => Html::activeDropDownList($searchModel, 'sub_div', \common\models\SurveyHescoSubdivision::toArrayList(), ['prompt' => "Sub-Div", 'class' => 'form-control']),

        ],


        //'meter_status',
        [
            'label' => 'Meter Status',
            'value' => function ($d) {
                    return $d->meter_status;
            },
            'filter' => Html::activeDropDownList($searchModel, 'meter_status', \app\models\Meters::getMeterStatus(), ['prompt' => "Meter Status", 'class' => 'form-control']),

        ],
        //'status',
        [
            'label'=>'Status',
            'value'=>function($a){
                    return $a->getStatusvalue();
            }
        ],
        [
            'label' => 'Issued User',
            'value' => function ($d) {
                if(is_object($d->user))
                    //return $d->user->name;
                    return $d->issued_user == '' ? '' : $d->user->username;
                return ' - ';
               // return $d->user->name;

            },
            'filter' => Html::activeDropDownList($searchModel, 'issued_user', \app\models\User::toArrayList(), ['prompt' => "Users", 'class' => 'form-control']),

        ],
        [
            'label' => 'Created By',
            'value' => function ($data) {
                if (is_object($data))
                    return $data->created->name;
                return ' - ';
            },

        ],
        'created_at:date',
        'historic',
        'comments',
        ['class' => 'yii\grid\ActionColumn'],

    ],
]); ?>
但它给了我一个空视图,没有显示任何值


我如何访问它?非常感谢您的帮助。

您需要报表控制器中的筛选值。为此,您需要使用查询字符串传递值

您可以在查看索引页面中获取筛选器值,如下所示

$sub_div = isset($_REQUEST['MetersSearch']['sub_div'])?$_REQUEST['MetersSearch']['sub_div']:'';
现在可以将此值传递给控制器

<a href="<?= URL::toRoute('meter/report').'?sub_div='.$sub_div ?>" type="submit" class="btn btn-primary">Download PDF</a>

下拉列表应该在表单中,它在表单中尝试这样访问:$\u请求['MetersSearch']['sub\u div']尝试使用这两个
$\u请求['MetersSearch']['sub\u div']它给我
未定义的索引:MetersSearch
isset($\u请求['MetersSearch']['sub\u div'])?$\u请求['MetersSearch']['sub\u div']:''它给了我空视图您是否使用var\u dump($\u request)
给了我
未定义的变量:sub\u div
检查请求中得到了什么。你的方法对我有用:)
$sub_div = isset($_REQUEST['MetersSearch']['sub_div'])?$_REQUEST['MetersSearch']['sub_div']:'';
<a href="<?= URL::toRoute('meter/report').'?sub_div='.$sub_div ?>" type="submit" class="btn btn-primary">Download PDF</a>
function actionReport()
{
   $sub_div = $_REQUEST['sub_div'];
   print_r($sub_div);
   die();
}