【问题标题】:yii2 php set model attribute when clicking submit buttonyii2 php点击提交按钮时设置模型属性
【发布时间】:2021-11-11 08:08:24
【问题描述】:

我有一个表单视图,用户可以在其中填写模型的属性。 提交时,我希望用户能够发布模型或将其保存为草稿。区别基本上只是需要在数据库中设置的布尔“草稿”。

<?= Html::submitButton(Yii::t('OfferModule.form', 'Save as draft'), ['class' => 'btn btn-outline btn-submit', 'id' => 'draft-btn']) ?>
<?= Html::submitButton(Yii::t('OfferModule.form', 'Submit'), ['disabled' => 'disabled', 'class' => 'btn btn-primary btn-submit', 'id' => 'submit-btn']) ?>

由于我通常使用 JavaScript 进行开发并且到目前为止只掌握了 php 基础知识,那么最好的方法是什么?我能想到的解决方案是:

a) 向 Controller 发送一个额外的参数,并在 Controller 中根据它设置模型值(-> 如何向模型另外发送另一个参数?)

b) 在点击按钮时设置属性“草稿”以在提交前保存为草稿(-> 是否可以设置属性并使用相同的按钮提交?)

c) 在“另存为草稿”按钮后面隐藏一个复选框,当点击它时,通过添加一些 JavaScript 来触发提交(-> 如何将复选框表单字段隐藏在按钮后面?)

如果有人可以在这里帮助我,我将不胜感激 :) 提前致谢!

【问题讨论】:

    标签: php model yii2 parameter-passing form-submit


    【解决方案1】:

    您可以使用以下方式提交表单:

    <button type="submit" id="draft-btn" value="draft" name="actionBtn">Save as draft</button>
    <button type="submit" id="submit-btn" value="submit" name="actionBtn">Submit</button>
    

    您可以通过 actionBtn 值决定是保存为草稿还是发布。如果 'actionBtn' 的值为草稿,则将其保存为草稿,并在提交值时发布。

    【讨论】:

    • 谢谢! :) 如果其他人对此感到困惑:可以在 Yii2 中像这样从 post 请求中读取值:Yii::$app-&gt;request-&gt;post('storeOption'); 添加“值”和“名称”属性也可以通过在使用 Yii 时将它们添加到选项数组中来工作用于创建提交按钮的 HTML 助手。
    猜你喜欢
    • 1970-01-01
    • 2021-09-24
    • 2015-12-17
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多