如何使用ajax在下拉菜单中选择选项时显示文本框

如何使用ajax在下拉菜单中选择选项时显示文本框,ajax,yii,Ajax,Yii,这是我使用的下拉列表 <?php echo $form->labelEx($model,'status'); ?> <?php echo $form->dropDownList($model,'status', array('0' =>'In active', '1'=> 'Active'), array( 'onChange' => 'javascript:description()' )); ?> 如

这是我使用的下拉列表

    <?php echo $form->labelEx($model,'status'); ?>
            <?php echo $form->dropDownList($model,'status',
array('0' =>'In active', '1'=> 'Active'),
array( 'onChange' => 'javascript:description()' )); ?>

如何显示文本框以说明如何动态选择非活动


请为初学者推荐一些yii+ajax教程

即使我们今天晚上的表现如何,但我还是做了同样的事情

创建一个默认情况下不可见的div,该div将包含文本框和标签,我们可以根据表单的正常名称为其设置名称

正如您已经添加了描述函数onChange一样,在该函数中,将div显示为块

在模型中,如果文本框字段不在模型alreay中,则必须包含该字段的变量名…(我假设您可以从这里获取它…)


..
....
功能描述(id)
{
如果(id==0)
document.getElementById(“description\u id”).style.display=“block”;
}

我们今天晚上都很好,只是我做了同样的事

创建一个默认情况下不可见的div,该div将包含文本框和标签,我们可以根据表单的正常名称为其设置名称

正如您已经添加了描述函数onChange一样,在该函数中,将div显示为块

在模型中,如果文本框字段不在模型alreay中,则必须包含该字段的变量名…(我假设您可以从这里获取它…)


..
....
功能描述(id)
{
如果(id==0)
document.getElementById(“description\u id”).style.display=“block”;
}

实际上,您要做的事情非常简单,而且由于Yii的jQuery封装,您不需要担心jQuery代码。参考资料如下:不管怎样,让我告诉你怎么做。但在我问你一个问题之前:这行代码:
array('onChange'=>'javascript:description()')
,你是想解决这个问题吗?或者它是否具有与此主题无关的其他功能?如果这是你试图解决问题的一部分,那么就删除它。你不需要那个。正如我之前告诉过您的,您不需要担心实际的jquery代码,它已经很好地封装在Yii中。另一方面,如果它与这个主题无关,当然,让它在哪里

现在,关于ajax更新。首先,我们需要一个div来显示文本框;我将使用description_id div。然后,在dropdownlist()中指定ajax请求,如下所示:

<?php echo $form->labelEx($model,'status'); ?>
<?php echo $form->dropDownList($model,'status',
array('0' =>'In active', '1'=> 'Active'),
array( 'onChange' => 'javascript:description()', 
       'ajax'=>array(
          'type'=>'POST',
          'url'=>CController::createUrl('YourController/actionWhichEchoesTheTextBox'),
          'update'=>'#description_id',
))); 
?>
<div id="description_id">
</div>

就这样

实际上,您要做的非常简单,而且,由于Yii的jQuery封装,您不需要担心jQuery代码。参考资料如下:不管怎样,让我告诉你怎么做。但在我问你一个问题之前:这行代码:
array('onChange'=>'javascript:description()')
,你是想解决这个问题吗?或者它是否具有与此主题无关的其他功能?如果这是你试图解决问题的一部分,那么就删除它。你不需要那个。正如我之前告诉过您的,您不需要担心实际的jquery代码,它已经很好地封装在Yii中。另一方面,如果它与这个主题无关,当然,让它在哪里

现在,关于ajax更新。首先,我们需要一个div来显示文本框;我将使用description_id div。然后,在dropdownlist()中指定ajax请求,如下所示:

<?php echo $form->labelEx($model,'status'); ?>
<?php echo $form->dropDownList($model,'status',
array('0' =>'In active', '1'=> 'Active'),
array( 'onChange' => 'javascript:description()', 
       'ajax'=>array(
          'type'=>'POST',
          'url'=>CController::createUrl('YourController/actionWhichEchoesTheTextBox'),
          'update'=>'#description_id',
))); 
?>
<div id="description_id">
</div>

就这样

创建的动态字段的
$\u POST
变量中没有值。
i、 e.在div标记之间创建的字段。

创建的动态字段的
$\u POST
变量中没有值。 i、 e.在div标记之间创建的字段

    public function actionWhichEchoesTheTextBox()
   {
      if($_POST['ModelName']['status']===0)
         echo CHtml::textField("ModelName", 'description'/*attribute name*/) ; 
   }