使用ajaxlink将组合框选定值传递给对话框

时间:2013-07-01 11:08:11

标签: php ajax yii

我试图将dropDownList选择的值传递给此对话框。

关于我如何做到这一点的任何想法?

我尝试使用array('id'=>'showEventoDialog','tipoaux'=>$data["tipo"])或仅$data->tipo向ajaxlink添加其他参数,但似乎无法做我想要的。

我也试图通过对话框表单中的$_GET获取值。

这是我的表单和表单中的Dialog链接

<?php echo $form->labelEx($model,'tipo'); ?>
<?php echo $form->dropDownList($model,'tipo',Lookup::items('Teste')); ?>
<?php echo $form->error($model,'tipo'); ?> 

...

  <?php echo $form->labelEx($model,'eventoid'); ?>
  <div id="evento">
     <?php echo $form->dropDownList($model,'eventoid',CHtml::listData(Evento::model()->findAll(),'id', 'designacao'),array('prompt'=>'Escolha','class'=>'required')); ?>
     <?php echo CHtml::ajaxLink(Yii::t('evento','Novo Evento'),$this->createUrl('evento/addnewcom'),array(
                                        'onclick'=>'$("#eventoDialog").dialog("open"); return false;',
                                        'update'=>'#eventoDialog'
                                        ),array('id'=>'showEventoDialog'));?>
      <div id="eventoDialog"></div>
   </div> 

关于如何做到这一点的任何想法? 此外,该解决方案将与任何其他类型的值一起使用,例如textfield或我的表单上的其他值,因此我可以在提交父表单之前将值传递给对话框。

1 个答案:

答案 0 :(得分:0)

您可以将一些代码连接到对话框的open事件,该事件将在对话框出现之前触发。在此代码中,您可以查询所选选项并将其写入对话框:

<?php echo $form->labelEx($model,'eventoid'); ?>
<div id="evento">
 <?php echo $form->dropDownList($model,'eventoid',CHtml::listData(Evento::model()->findAll(),'id', 'designacao'),array('prompt'=>'Escolha','class'=>'required')); ?>
 <?php echo CHtml::ajaxLink(Yii::t('evento','Novo Evento'),$this->createUrl('evento/addnewcom'),array(
                                    'onclick'=>'$("#eventoDialog").dialog({open: function(){ $("#selectedvalue").text($("#eventoid").val()); }}) .dialog("open"); return false;',
                                    'update'=>'#eventoDialog'
                                    ),array('id'=>'showEventoDialog'));?>
  <div id="eventoDialog">
    <span>Selected value: </span><span id="selectedvalue" />
  </div>
</div>