2012-05-02 18 views
1

在我的edit.ctp中我有一個選擇框,我不需要用戶更改。所以我把數組(禁用=> true)。但是這個字段是不是來時保存已禁用的字段

pr($ this-> data);並在保存時顯示錯誤。

有什麼選擇來解決這個問題....

謝謝。

+0

殘疾人領域沒有得到發佈,您可以使用隱藏字段傳遞後 –

回答

0

你可以做現場只讀,使用戶不能改變它,或者使用一些隱藏字段後,你想要的數據,或者你可以使用一些CSS,就像visibility:hidden的,使用戶不要看到它,但它會被張貼。

echo this->Form->input('patient_id',array('type'=>'hidden')); 

您可以使用一些其他的名字在輸入和控制器檢查,或者你可以完全從視圖* 強大的文本除去選擇元素*(因爲,它並不需要爲用戶不需要改變它)

+0

回聲這個 - >形式 - >輸入( 'patient_id',陣列( '類型'=> '隱藏')); echo $ this-> Form-> input('patient_id',array('disabled'=>'true'));當我像上面這樣編碼時,也沒有發佈patient_id。 – alexkd

+0

對不起,這是錯誤的。現在正確 – alexkd

+0

如果您使用隱藏字段,用戶仍然可以輕鬆編輯它們!確保使用某種形式的篡改保護來防止這種情況(請參閱:SecurityComponent)。 – jeremyharris

4

如果你知道數據的價值,你可以在控制器上編輯它。

$this->request->data['ModelName']['fieldName'] = value;

UPDATE

編輯它像
echo $this->Form->input('patient_id',array('type'=>'select', 'readonly' => 'readonly'));

+0

它顯示爲只讀。但用戶仍然可以從選項中進行選擇。 – alexkd

+0

這就是我正在尋找的東西。顯示信息並按原樣保存。謝謝。 – pctroll