我的兩個下拉菜單中的一個用於我的國家和其他城市的頁面上。 當我最初加載頁面時,我將該國家設置爲從用戶註冊加載的默認國家/地區。然後我加載該國的城市。當刷新頁面時,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
我已經添加了上面的控制器代碼。我唯一的問題是,當我刷新頁面時,下拉選擇的值沒有正確設置。 –