基于单选按钮选择更新文本字段

时间:2014-08-22 07:46:45

标签: php html ajax yii radio-button

我有25个单选按钮,这样只能进行一次选择。在选择特定单选按钮时,将对此表单的风险等级文本字段执行ajax更新。并且,这个文本字段应该在每个单选按钮选择上得到唯一更新。

enter image description here

这怎么可能。拜托,我真的被困在这里了。 我通过正常的单选按钮代码完成了每一个。 我在依赖下拉文本字段中使用了ajax更新,但是,我不确定这里是否合适。 我想我在这里弄错了。任何事情都会非常有用。

                   <table id="department_permissions_table" class="display">
                    <thead>
                    <tr style="background-color: lavender"><td style="background-color: white"></td><td><b>Effect</b></td>
                    <td></td><td></td>
                    <td></td><td></td></tr>
                    <tr>
                        <td style="background-color: lavender"><b>Likelihood of recurrence</b></td>
                        <td style="background-color: #f5f5f5"><b>Negligible</b></td>
                        <td style="background-color: #f5f5f5"><b>Minor</b></td>
                        <td style="background-color: #f5f5f5"><b>Moderate</b></td>
                        <td style="background-color: #f5f5f5"><b>Major</b></td>
                        <td style="background-color: #f5f5f5"><b>Catastrophic</b></td>
                    </tr>
                    </thead>
                    <tbody>
                    <tr>
                        <td style="background-color: #f5f5f5"><b>Almost certain</b></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>11,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>12,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>13,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>14,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>15,'uncheckValue'=>null)); ?></td>

                    </tr>

                    <tr>
                        <td style="background-color: #f5f5f5"><b>Likely</b></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>21,
                                'uncheckValue'=>null,
                                'ajax' => array(
                                    'type'=>'POST',
                                    'url'=>Yii::app()->createUrl('Cinvestigation/load'),
                                    'update'=>'#risk_grade',
                                    'data'=>array('region_id'=>'js:this.value'),
                                )
                            )); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>22,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>23,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>24,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>25,'uncheckValue'=>null)); ?></td>

                    </tr>


                    <tr>
                        <td style="background-color: #f5f5f5"><b>Possible</b></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>31,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>32,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>33,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>34,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>35,'uncheckValue'=>null)); ?></td>

                    </tr>

                    <tr>
                        <td style="background-color: #f5f5f5"><b>Unlikely</b></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>41,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>42,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>43,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>44,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>45,'uncheckValue'=>null)); ?></td>

                    </tr>

                    <tr>
                        <td style="background-color: #f5f5f5"><b>Rare</b></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>51,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>52,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>53,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>54,'uncheckValue'=>null)); ?></td>
                        <td><?php echo $form->radioButton($model,'a11',array('value'=>55,'uncheckValue'=>null)); ?></td>

                    </tr>



                    </tbody>
                </table>

            </div>

        </td>
    </tr>
    </tbody>
</table>

<table class="table">
    <tbody>
    <tr>
        <td><div class="span2" style="width:auto; margin-top:5px; margin-bottom: 5px">Grade risk: </div></td>
        <td><?php echo $form->textFieldRow($model,'risk_grade',array('class'=>'span2','maxlength'=>100)); ?>
        </td>
    </tr>
    <tr>

1 个答案:

答案 0 :(得分:0)

我认为您不需要为此任务进行ajax更新。您可以使用jQuery轻松完成它,您只需要为单选按钮值和要为文本字段设置的字符串设置某种映射器

首先为每个单选按钮设置类

<?php echo $form->radioButton($model,'a11',array('value'=>51,'uncheckValue'=>null, 'class'=>'radioClass')); ?>

比设置textfield的类

<?php echo $form->textFieldRow($model,'risk_grade',array('class'=>'textClass span2','maxlength'=>100)); ?>

然后在javascript中附加事件监听器

<script>
    $(function(){
        $(".radioClass").click(function(){
            $(".textClass").val($(this).val());
        });
    });
</script>

此代码只会将单选按钮值单击为文本字段的值

现在您可能需要某种映射器来显示单选按钮值和要显示的文本,这可能是由服务器端生成的

我希望我帮助