Php ActiveDropDownList中的默认值

Php ActiveDropDownList中的默认值,php,jquery,yii,Php,Jquery,Yii,我从一位老开发人员那里继承了一段代码,目前正试图找出它提交的方法 我目前正试图找到一个快速修复方法,在那里我隐藏了他的一个字段以获得表单提交,我遇到的问题是,我似乎无法将dropdownlist设置为默认值,即数据库中id为826的英国 echo CHtml::ActiveDropDownList($address, 'country_id', CHtml::listData(Country::model()->findAll(), 'id', 'name', 'continent'),

我从一位老开发人员那里继承了一段代码,目前正试图找出它提交的方法

我目前正试图找到一个快速修复方法,在那里我隐藏了他的一个字段以获得表单提交,我遇到的问题是,我似乎无法将dropdownlist设置为默认值,即数据库中id为826的英国

echo CHtml::ActiveDropDownList($address, 'country_id', CHtml::listData(Country::model()->findAll(), 'id', 'name', 'continent'), array(
    'class' => 'col-md-5 hidden',
    'prompt' => 'Select Country',
    'label' => 'something here',
    'ajax' => array(
        'type' => 'POST',
        'url' => CController::createUrl('/user/UpdateRegions'),
        'dataType' => 'json',
        'data' => array('country_id' => 'js:this.value', 'YII_CSRF_TOKEN' => Yii::app()->request->csrfToken),
        'success' => 'function(data) {
                            $("#Address_country_region_id").html(data.country_id);
                            $("#Address_country_region_id").removeClass(\'hidden\');

                            if($("#venue_id").val() === "") {
                                $("#Address_country_region_id").addClass(\'hidden\');
                                }
                        }',
)));

$path = CController::createUrl('/admin/user/UpdateRegions');
$id = $address->id;
// On Load
Yii::app()->clientScript->registerScript('ready', '
    $.ajax({
        type: \'POST\',
        dataType : \'json\',
        data: {\'country_id\': $(\'#Address_country_id\').val(), \'update_id\' : "' . $id . '"},
        url: "' . $path . '",
        success: function(data){
                    $(\'#Address_country_region_id\').html(data.country_id);
                }
    })
');
如何在页面加载时使该下拉列表指向国家id 826,以便隐藏字段并通过表单验证

注意。

要设置$address模型的默认值,请将

$address->country_id = Yii::app()->request->getParam(get_class($address).'[country_id]', 816);
以前

echo CHtml::ActiveDropDownList($address, 'country_id', CHtml::listData(Country::model()->findAll(), 'id', 'name', 'continent'), array(
要设置$address模型的默认值,请将

$address->country_id = Yii::app()->request->getParam(get_class($address).'[country_id]', 816);
以前

echo CHtml::ActiveDropDownList($address, 'country_id', CHtml::listData(Country::model()->findAll(), 'id', 'name', 'continent'), array(

粘贴的此代码执行以下操作:

第一部分呈现一个下拉列表,该下拉列表在更改为/user/UpdateRegions时执行ajax请求,以填充区域的相关下拉列表

第二部分在页面准备就绪时也会执行ajax请求。以便在页面准备就绪时填充区域选择

如果打印出当前设置的id,脚本应该输出id 826。 如果不是,则该值未正确设置为地址模型

echo $address->country_id;
如果要设置默认值,可以在多个位置进行设置。e、 g.在控制器“之前”中,实际提交的值已设置,或者模型代码本身取决于您的代码,例如,如果您有一个从activerecord模型扩展而来的附加表单模型

控制器中的正确行可能位于以下内容之前:

 $address->country_id= 826;
 before one of these lines in your controller

 $address->attributes=Yii::app()->request->getQuery(get_class($address));
 or 
 $address->attributes=Yii::app()->request->getPost(get_class($address));
 or 
 $address->attributes=$_POST['address']; // or $_GET
如果您很难找到正确的位置,请发布一些控制器代码

我想你也可以在这里找到一些帮助

您粘贴的此代码执行以下操作:

第一部分呈现一个下拉列表,该下拉列表在更改为/user/UpdateRegions时执行ajax请求,以填充区域的相关下拉列表

第二部分在页面准备就绪时也会执行ajax请求。以便在页面准备就绪时填充区域选择

如果打印出当前设置的id,脚本应该输出id 826。 如果不是,则该值未正确设置为地址模型

echo $address->country_id;
如果要设置默认值,可以在多个位置进行设置。e、 g.在控制器“之前”中,实际提交的值已设置,或者模型代码本身取决于您的代码,例如,如果您有一个从activerecord模型扩展而来的附加表单模型

控制器中的正确行可能位于以下内容之前:

 $address->country_id= 826;
 before one of these lines in your controller

 $address->attributes=Yii::app()->request->getQuery(get_class($address));
 or 
 $address->attributes=Yii::app()->request->getPost(get_class($address));
 or 
 $address->attributes=$_POST['address']; // or $_GET
如果您很难找到正确的位置,请发布一些控制器代码

我想你也可以在这里找到一些帮助

这将破坏通过post/get设置地址模型国家的可能性。我举了一个例子,说明如何设置国家id的默认值。现在用户可以在需要的地方插入代码。首先,他的模型是$address而不是$model;第二,他的post/get提交也会丢失。这是一个他想要的独立下拉列表。我不确定他是否想设置国家或地区的默认id selectHi,是的,这个答案有效,提交可能会中断,但在这种情况下,地址等对项目并不重要,这只是一个临时修复,直到有几个空闲时间删除多个模型和控制器。我无法将其标记为正确的问题,因为它在我的项目中非常具体,但我已经投了赞成票。这将破坏通过post/get设置地址模型国家的可能性。我举了一个关于如何为国家id设置默认值的示例。现在,用户可以在需要的地方插入代码。首先,他的型号是$address而不是$model;第二,他的post/get提交也会丢失。这是一个他想要的独立下拉列表。我不确定他是否想设置国家或地区的默认id selectHi,是的,这个答案有效,提交可能会中断,但在这种情况下,地址等对项目并不重要,这只是一个临时修复,直到有几个空闲时间删除多个模型和控制器。我不能将它标记为正确的问题,因为它对我的项目非常具体,但我投了赞成票。优秀的答案,填补了我知识的空白。优秀的答案,填补了我知识的空白。