2011-06-24 67 views
0

我有一個表單,其中兩個表單的值通過javascript獲取它們的值。這些文件的值應該以數據庫結尾。
的文本框的值不應適用於普通用戶,所以我用這樣的代碼:
<input type="text" name="total" id="total" disabled="disabled" value="0"> EUR沒有拿起php的javascript值

自嘆不如,在數據庫中的值現在爲0
當我刪除disabled="disabled時,數據庫中結束的值是正確的。

這是怎麼回事,是否有可能阻止您的客戶修改輸入字段的內容,同時仍然獲得數據庫中的賴特值?

+0

請重新格式化您的問題,我不明白你在問什麼。 – FinalForm

+0

你明確地說value =「0」 - 爲什麼你的數據庫中的值爲0會很奇怪? – keymone

+0

0是默認值。要點是用JavaScript文件中的某個值替換該值。 – Michiel

回答

3
<input type="text" name="total" id="total" readonly="readonly" value="0"> EUR 

改爲使用readonly屬性。

禁用確實聽起來像,它禁用該字段,信息不會通過窗體發送到服務器端腳本。所以,當讀取該變量時,服務器端腳本將會爲空。

至於你的第二個問題,你不應該依賴這樣的客戶端驗證(javascript)。這樣做很好,但你也應該在服務器端做。造成這種情況的原因是因爲您無法控制100%客戶端計算機上發生的情況(用戶可以在數據包級別進行修改並避開您實施的任何客戶端驗證)。

+0

謝謝!解決了! – Michiel

1

提交表單時,不傳遞已禁用的值。你想要使用的是readonly="readonly"

+0

謝謝,這對我幫助很大! – Michiel

0

當你在輸入字段上設置'禁用'標誌時,它會阻止將該字段提交給Web服務器 - 就PHP而言,它不存在。改爲使用readonly="readonly"

0

禁用標籤會禁用文本框。因此,用戶無法輸入新值並且其值現在爲「o」。 如果你刪除它,實際價值將取代它。