【问题标题】:How i can change the value of the checkbox base in a dropDownList dynamically我如何动态更改下拉列表中复选框基础的值
【发布时间】:2020-02-29 20:02:11
【问题描述】:

我有一个表单,需要将复选框更改为选中或未选中的基于下拉列表的 int 选择。我是 PHP 和 Yii2 的初学者。

这是我的表格

<div class="npi-approval-review-form">

<?php if(!empty(Yii::$app->session->get('activity') && Yii::$app->session->get('activity')->need_signature == 'S'))$model->sign = 1; ?><?php ?>

    <?php $form = ActiveForm::begin(); ?>
        <table>
            <tbody>

            <tr>
                <td>
                    <?php if ($model->type == TypeOrigin::Aprovação): ?>
                    <?= $form->field($model, 'status')->dropDownList(StatusReview::asArray(), ['prompt'=>StatusApproval::asArray()[$model->status]]); ?>
                    <?php endif; ?>

                    <?php if ($model->type == TypeOrigin::Revisão): ?>
                        <?= $form->field($model, 'status')->dropDownList(StatusReview::asArray(), ['prompt'=>StatusReview::asArray()[$model->status]]); ?>
                    <?php endif; ?>
                </td>

                <td>&nbsp;&nbsp;&nbsp;</td>

                <td>
                    <?= $form->field($model, 'type')->textInput(['value'=>TypeOrigin::asArray()[$model->type]
                    , 'readonly' => true, 'disabled' => 'true']);?>
                </td>
            </tr>
            </tbody>
        </table>

        <?= $form->field($model, 'conclusion')->textarea(['rows' => 5, 'maxlength' => true]) ?>

        <?= $form->field($model, 'sign')->checkBox(['value'=> $model->status == '2' ? '0' : '1']) ?>

        <div class="form-group">
            <?= Html::submitButton('Salvar', ['class' => 'btn btn-success']) ?>
        </div>

    <?php ActiveForm::end(); ?>

</div>

【问题讨论】:

    标签: php forms checkbox yii2


    【解决方案1】:

    首先,最好为下拉列表和复选框设置 id,

    为选择设置 id 将其添加到选项参数中:

    ....['prompt'=>StatusReview::asArray()[$model->status,'id'=>'select_id']
    

    然后使用这个 jquery js 你可以看到你的结果。

    <script>
    $("#select_id").on('change',function(){ // if dropdown with id select_id changed.
    var checkbox = $("#checkbox_id"); 
    if($(this).val() === 'x'){ // set checkbox checked if option equal x
        checkbox.prop('checked', true);
    }else{ // else remove checked.
        checkbox.prop('checked', false);
    }
    })
    
    </script>
    

    【讨论】:

    • 感谢您的回答,感谢您尝试帮助我这对我来说不起作用,我在代码中放入了一个 javascript jquery alert() 但是,它没有被调用。现在我正在按照你的建议工作。
    猜你喜欢
    • 2018-09-24
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多