在這種形式下,我有一些輸入字段,並且不應該被一些用戶編輯選擇框。禁用或只讀 - 選擇框問題
不過,我需要被插入反正那些無法領域。
我正想着這些值傳遞到一個隱藏字段(這應該在JS做呢?); 然後使用這些隱藏字段來提交表單。
這是一個很好的方法嗎?請指教。
在這種形式下,我有一些輸入字段,並且不應該被一些用戶編輯選擇框。禁用或只讀 - 選擇框問題
不過,我需要被插入反正那些無法領域。
我正想着這些值傳遞到一個隱藏字段(這應該在JS做呢?); 然後使用這些隱藏字段來提交表單。
這是一個很好的方法嗎?請指教。
只要把它們hidden field:
echo $form->hiddenField($model,'property');
只需使用隱藏的精密組件的形式中,像這樣:需要
<input type="hidden" name="id" value="00001" />
沒有JS。
您可以使用隱藏字段將數據傳遞到表單中,但請記住,如果某人計劃惡作劇,他們可以使用Firebug等工具編輯這些值並提交它們,因此依靠隱藏字段可能會導致的問題。
如果你想成爲正確的安全,你必須做的一切在服務器端 - 請檢查客戶端是否有權限,當他們提交表單來訪問這些字段。如果他們這樣做,請採取他們提交的價值;否則,請使用存儲在您的PHP代碼中的默認值。
我會去與複選框禁用,也許只讀的文本字段。事情是,你知道他們應該有什麼樣的價值,當他們submited。因此,在服務器端,您可以忽略它們並使用您選擇的值。如果有人正在操作發佈請求,則忽略數據。
隱藏字段已經出現自表單的曙光。是的,使用它們。 – TheZ 2012-07-11 17:14:09
這裏沒有安全問題? – MEM 2012-07-11 17:20:49
好吧,從技術上講,有人可以使用DOM檢查器或Javascript控制檯並讀取/更改值。但這不是一個新問題,幾乎所有你選擇的方法都會有這個弱點。 – TheZ 2012-07-11 17:24:32