我有一個包含20個窗體的網頁。如何在顯示div時顯示特定的php文件/ display:「block」
它們都隱藏起來,直到您從下拉框中選擇一個表單,然後表單出現。
每個表單都有自己的驗證。問題是我已經包含每個表單的驗證每個特定的表單在它自己的div。
所以我認爲,因爲每個div都隱藏了,所有其他隱藏表單的驗證將不起作用......我的錯誤如何:
任何方式只包括PHP文件包括當div不隱藏?
我有一個包含20個窗體的網頁。如何在顯示div時顯示特定的php文件/ display:「block」
它們都隱藏起來,直到您從下拉框中選擇一個表單,然後表單出現。
每個表單都有自己的驗證。問題是我已經包含每個表單的驗證每個特定的表單在它自己的div。
所以我認爲,因爲每個div都隱藏了,所有其他隱藏表單的驗證將不起作用......我的錯誤如何:
任何方式只包括PHP文件包括當div不隱藏?
簡答:網絡不能這樣工作。
較長的回答:瀏覽器不包含PHP,服務器包含它並將HTML中的所有輸出內容吐出到瀏覽器中。瀏覽器只能看到HTML輸出,因此它可以看到併發送所有內容。
有幾個解決方案。我建議確保你的每個div都有它自己的表單標籤,然後爲每個div添加一個隱藏的輸入,以便你的PHP腳本可以決定它應該做什麼驗證。事情是這樣的:
<div id="formfoo">
<form method="POST" action="/your-script.php">
<input type="hidden" name="validate" value="formfoo" />
<!-- rest of your form -->
</form>
</div>
然後在PHP中:
if($_POST['validate'] == 'formfoo') {
// validate fields in formfoo here.
}
希望有所幫助。
由於PHP已經處理完畢,將所有內容發送到瀏覽器,因此您只能使用javascript。做到這一點的方法是將表單的驗證綁定到特定表單的提交上,所以事件只會觸發正確的表單。
PHP沒有關於客戶端大小或不是什麼內容的概念。你必須考慮一種不同的方法。
幸運的是,還有其他方法。
由於每個div都包含一個表單,所以您可以簡單地讓所有表單包含一個隱藏字段(比如說formid或其他東西),您可以檢查以確定哪個表單已提交。
或者,您可以爲表單上的每個提交控件指定一個唯一的名稱,並檢查在服務器端觸發的提交按鈕的名稱。
額外的小費:
,你可以在隱藏div
S中的表單元素設置爲禁用:
<input type="text" name="bla" disabled="disabled" />
,並通過JavaScript使他們一旦被顯示。
當提交表單時,不會發送禁用的元素。
....禁用的處理/啓用可能比分離該形式和製作的區別serversite像Cfreak建議更多的努力......
謝謝,一清二楚。想你給了我一個主意。問題是我發佈表單時已經調用了腳本,但爲什麼不把每個php驗證包含在發佈表單時調用的.php腳本中。最好的兩個世界呃... – 2012-03-02 16:14:12
好的我需要一些幫助,驗證必須在表單發送之前出現,所以把它放在發佈部分WONT工作,因爲它說頭一次發送不能被修改。在我把它作爲一個包含在帖子中之前,我從來沒有遇到過這個問題,所以我認爲是這樣。任何想法的人? – 2012-03-02 16:46:15
你能展示一些你的代碼嗎?通常,將邏輯(驗證)與顯示代碼分開會更好。 – Cfreak 2012-03-02 19:17:35