【问题标题】:Ajax Dependable texfiled with a Dropdown list in Yii is not working在 Yii 中带有下拉列表的 Ajax Dependable texfiled 不起作用
【发布时间】:2014-01-01 14:08:54
【问题描述】:

[已解决 :: 更新代码] 有一个下拉列表和一个文本文件。提交的文本将由 Ajax 在 Yii 表单中的每个下拉选择中填充。我需要通过 Ajax URL 将参数传递给控制器​​。当我通过 URL 传递静态参数时它正在工作。但未能获得动态参数。

我的表单::

    <div class="row">
    <?php echo $form->labelEx($model,'pp_store'); ?>
    <?php // echo $form->dropDownlist($model,'pp_store', CHtml::listData(Branchmaster::model()->findAll(), 'cm_branch', 'cm_branch')); ?>
    <?php $storeArray = CHtml::listData(Branchmaster::model()->findAll(),'cm_branch','cm_branch');
       echo $form->dropDownList($model,'pp_store', $storeArray, 
                      array(
                            'empty'=>"Select Warehouse",
                            'ajax' => array(
                                'type'=>'POST',
                                'url'=>CController::createUrl('purchaseordhd/GetCurrency' ),
                                'update' => '#currencyid',  
                                'data'=>array('store'=>'js:this.value',),   
                                'success'=> 'function(data) {$("#currencyid").empty();
                                $("#currencyid").val(data);
                                } ', 
                      ),

        )); ?>
    <?php echo $form->error($model,'pp_store'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'pp_currency'); ?>
    <?php echo $form->textField($model,'pp_currency', array('id'=>'currencyid', 'readonly'=> true)); ?>
    <?php echo $form->error($model,'pp_currency'); ?>
</div>

我的控制器::

        public function actionGetCurrency()
    {
        $q = $_POST['store'];

        $sql = "SELECT cm_currency as value FROM cm_branchmaster WHERE cm_branch= '$q' ";
        $command = Yii::app()->db->createCommand($sql);
        $result= $command->queryScalar(); 
        echo $result;

    }

当我从 Ajax URl "array('pp_store'=>'333')" 发送参数时,它运行良好。但我需要动态发送数据。

[已解决 :: 更新了代码]享受编码的乐趣

【问题讨论】:

  • [已解决 :: 更新了代码] 享受编码...请投票

标签: php ajax yii-extensions yii


【解决方案1】:

您不想按照以下示例传递参数。当前元素值将作为参数通过 POST 传递给控制器​​。

http://www.yiiframework.com/wiki/24/creating-a-dependent-dropdown/

echo CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'),
array(
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('currentController/dynamiccities'), //url to call.
//Style: CController::createUrl('currentController/methodToCall')
'update'=>'#city_id', //selector to update
//'data'=>'js:javascript statement' 
//leave out the data key to pass all form values through
))); 

//empty since it will be filled by the other dropdown
echo CHtml::dropDownList('city_id','', array());

如果您想手动发送数据,则必须取消注释'data'=&gt;'js:javascript statement'

【讨论】:

  • 你添加data=&gt;'("$(this).val()")'了吗?
  • 感谢您的帮助。我得到了解决方案。我已经更新了代码。请给我投票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
相关资源
最近更新 更多