我的两个下拉菜单中的一个用于我的国家和其他城市的页面上。 当我最初加载页面时,我将该国家设置为从用户注册加载的默认国家/地区。然后我加载该国的城市。当刷新页面时,Cakephp下拉菜单不显示正确的数据
现在的问题是,当我更改国家下拉菜单并刷新页面时,我的国家下拉选择的值保持不变,但已经更改,但城市从默认国家加载。
我在控制器的视图中获得了正确的值,但视图没有正确设置。 在我看来,代码如下
echo $this->Form->input('from_country_code',
array(
'options'=>$countries,
'id'=>'from_country_code',
'label' => __('Country',true),
'selected'=>$selectedCountryCode
)
);
其次,请给我解释一下,我怎么可以检测到页面被刷新,并保留改变下拉值和不执行整个动作控制器代码。
任何帮助将不胜感激。
更新 - 这里的我的控制器代码
function add() {
$currentUser = $this->Auth->user();
$countryMap = $this->requestAction('/countries/getList/');
$this->set('countries',$countryMap);
$this->set('selectedCountryCode',$currentUser['City']['countriesCode']);
$cityMap = $this->requestAction('/cities/getListByCountryCode/'.$currentUser['City']['countriesCode']);
$this->set('cities',$cityMap);
if(!empty($this->data)) {
if($this->Request->saveAll($this->data)) {
$this->Session->setFlash('The Request was successfully Posted');
$this->redirect(array('controller'=>'users','action'=>'requests'));
} else {
$this->Session->setFlash('The Request was not saved. Please try again');
}
}
}
请注意,我遇到的问题是,页面上刷新全国下拉列表中选择属性没有设置正确。即使我刷新页面,我检查了控制器的值是否正确。
Im将选定的国家/地区值设置在此变量@selectedCountryCode中。
您没有正确提交页面。根据我的知识,firefox会在刷新页面后保留表单信息,无论您填写完整。您希望在您的控制器中取得选定的状态 - 直到您提交表单。你能否显示你的控制器代码,以便我们可以。请验证您的代码并在其他某个浏览器中检查它,或者在地址栏中按回车键而不是刷新。 – Vins
我已经添加了上面的控制器代码。我唯一的问题是,当我刷新页面时,下拉选择的值没有正确设置。 –