如何使用多个提交按钮创建表单

时间:2013-09-27 09:17:06

标签: php yii yii-components

我是Yii框架的新手。我正在使用form.php更新表格的字段。所以现在我使用这个表单和三个提交按钮 - [Save, Accept, Reject]。表单现在具有以下字段。

<div class="row">
    <?php //$model->ReviewedDate=date('Y-m-d H:i:s');?>
    <?php echo $form->labelEx($model,'ReviewedDate'); ?>
    <?php echo $form->textField($model,'ReviewedDate',array('value'=>'0000-00-00 00:00:00','readonly' => true));te  ?>
    <?php echo $form->error($model,'ReviewedDate'); ?>
            </div>
<div class="row">
    <?php echo $form->labelEx($model,'Approved'); ?>
    <?php echo $form->textField($model,'Approved'); ?>
    <?php echo $form->error($model,'Approved'); ?>
</div>    
<div class="row buttons">
        <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save',array('confirm' => 'Are you sure to save')); ?></div>

上方有Approved字段。现在,当我点击保存时,除了已批准外,所有其他字段都必须更新。 (默认情况下,已批准为0)。因此,当我单击“批准”按钮时,它应该更新“已批准”以及其他字段。当我点击Reject时,它应该将已批准的字段更新为0.我该怎么做。

3 个答案:

答案 0 :(得分:3)

您可以使用三个提交按钮,并可以按此管理功能。 在表单中创建3个按钮,如下所示:

<?php echo CHtml::submitButton('Save', array('name' => 'save')); ?>
<?php echo CHtml::submitButton('Accept', array('name' => 'accept')); ?>
<?php echo CHtml::submitButton('Reject', array('name' => 'reject')); ?>

在控制器中检查单击按钮的位置如下:

<?php 
if(isset($_POST['save'])){
    //save submit button is click and code for save button will be here    
}
if(isset($_POST['accept'])){
    //accept submit button is click and code for accept button will be here    
}
if(isset($_POST['reject'])){
    //reject submit button is click and code for reject button will be here    
} ?>

一切顺利:)

答案 1 :(得分:0)

我建议您使用下拉列表,而不是拥有3个提交按钮,这样您的用户就可以选择所需的操作。然后检查下拉控件的值,以便“保存”,“接受”或“拒绝”。

echo CHtml::dropDownList('action', '', array('Accept', 'Reject'));

在你的控制器中:

if (isset($_POST['ModelName'])) {
    switch ($_POST['action']) {
        case 'Accept':
            # code for Acceptance
            break;

        case 'Reject':
            # code for Rejection
            break;
    }
    //Continue with Saving the Model data here
}

答案 2 :(得分:0)

您可以使用操作添加 hiddenField

<?php echo $form->hiddenField($model, 'typeSubmit'); ?> // Add 'typeSubmit' attribute on the model

并提交3个按钮。每个按钮都会在隐藏字段上显示提交类型。

<?php echo CHtml::submitButton('Save', array('class'=>'btn','onclick'=>'$("#ModelName_typeSubmit").val("save");')); ?> // #ModelName = $model name class.
<?php echo CHtml::submitButton('Accept', array('class'=>'btn','onclick'=>'$("#ModelName_typeSubmit").val("accept");')); ?>
<?php echo CHtml::submitButton('Reject', array('class'=>'btn','onclick'=>'$("#ModelName_typeSubmit").val("reject");')); ?>