【发布时间】:2012-12-06 07:41:57
【问题描述】:
我有表单内容名字,姓氏......等。并拖拽下拉列表国家和城市,当国家下拉列表被ajax更改时,我加载了城市,一切都很酷。 我的问题:
1- 点击提交时验证出错,城市值将被替换为空值 如何解决?
2- 如何使用 $form-> 我的意思是 city droppdownlist 。
如果验证没有错误,则表单工作
点击提交后的表单并返回验证错误,例如用户名为空..etc
查看:
<div class="row">
<?php echo $form->labelEx($model,'البلد'); ?>
<?php
/*
echo chtml::activeDropDownList($model,'country',$model->getcountry(),array('prompt'=>'اختر بلدك ') ,
array(
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('current/dynamiccities'), //url to call.
//Style: CController::createUrl('currentController/methodToCall')
'update'=>'#city', //selector to update
//'data'=>'js:javascript statement'
//leave out the data key to pass all form values through
))
);
*/
echo CHtml::activedropDownList($model,'country',$model->getcountry(),
array(
'prompt'=>'اختر البلد أو المنطقة ',
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('register/dynamiccities'), //url to call.
//Style: CController::createUrl('currentController/methodToCall')
'update'=>'#city', //selector to update
//'data'=>'js:javascript statement'
//leave out the data key to pass all form values through
))
);
///
////
?>
<?php echo $form->error($model,'country'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'المدينة'); ?>
<?php
echo CHtml::dropDownList('city','', array());
?>
<?php echo $form->error($model,'city'); ?>
</div>
城市负载控制器:
public function actionDynamiccities() /// Call Ajax
{
$country=intval($_POST['Users']['country']);
$data=Cities::model()->findAll('country_id=:country_id',
array(':country_id'=>$country));
$data=CHtml::listData($data,'id','city_name_e');
echo CHtml::tag('option',
array('value'=>''),CHtml::encode('Select Your City '),true);
foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
};
}
【问题讨论】:
-
不要说最糟糕的代码,只是修复或告诉我我的错误..这个剪切知识的平台;)不仅仅是说“我见过的最糟糕的代码”
-
当我看到这个时,我无法控制自己:)
-
但我在该代码中找不到任何内容。您可以使用调试器逐步传递您的代码。