2011-11-25 134 views
2

我想在html中顯示警告消息。此代碼顯示名爲「公司」和「名稱」的兩個文本框。 con.php連接到數據庫並插入信息。但是,如果我什麼都沒輸入,那麼這些值仍然會以null的形式存儲在數據庫中。我希望用戶知道他不應該通過顯示一些消息將這些字段留空,並且如果給定的公司已經存在於數據庫中,則會出現警告。我如何實現?在html中顯示錯誤消息

<html> 
    <head> 
<title>store in a database</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
    <h2>company Store</h2> 
    <form name="form1" method="post" action="con.php"> 
     <p>company:<input type="text" name="company"> 
      <br/> 
      <br/> 
      <br/> 
      Name: <input type="text" name="name" size="40"> 
      <br/> 
      <br/> 
      <br/> 

      <input type="submit" value="Save"> 
      <input type="button" onclick="window.close()" value="cancel"> 
    </form> 
</body> 

+2

你不能用(純)html做到這一點;如果JavaScript是一個選項,那麼這很容易,或者可以(和*應該*)在服務器端檢查,以及用於填充數據庫的任何腳本語言。 –

+0

HTML 5有一些驗證屬性。但他們並不是真正推動噴氣式飛機。就像David Thomas所說,你也必須檢查服務器端的數據。 @David Thomas:他已經在使用javascript了,請參閱取消按鈕。 – rekire

回答

0

最好的辦法是使用Ajax,如果你想在同一頁面做到這一點。你需要閱讀一些教程。在這裏陳述並不那麼容易。

如果重新加載或重定向到其他頁面對您來說可以,您應該將提交的表單值與PHP腳本中的數據庫中的值進行比較,該腳本將從表單提交(操作url)重定向。如果值不匹配且不爲空,則將值存儲到數據庫並重定向到公司列表或「公司成功創建」消息頁等頁面。如果值與舊記錄匹配或爲空,則將其重新導向到帶有標誌的相同表單頁面(如form.php?error=1等),並顯示正確的錯誤消息。你

也可以使用JavaScript立即報警。但是您應該始終在PHP側執行相同的檢查,因爲JavaScript可以在瀏覽器中禁用。

0

在con.php你應該做你的數據驗證和返回標記(或重定向到頁面描述錯誤)。

所以,檢查空字段,如果存在,將用戶重定向到一個頁面,指出該字段不能爲空(也可能允許他們進入新的值)。

如果輸入的數據是好的,檢查數據庫的副本,如果存在的話,將用戶重定向到一個頁面稱,該公司已經存在(並可能再次允許用戶更正數據)。

1

雖然警報消息不能沒有JavaScript的生產,你可以利用HTML5的placeholder屬性告知該消息的用戶:

<input type="text" placeholder="You must enter something in this field"! name="whatever" id="whatever" /> 

而且夫婦這樣用JavaScript:

var inputElem = document.getElementById('whatever'); 
var form = document.getElementsByTagName('form')[0]; 

form.onsubmit = function(){ 
    if (inputElem.value = '' || inputElem.value.length < 1){ 
     alert('You must enter some actual information'); 
     return false; 
    } 
}; 

然而,JavaScript可以由用戶編輯,通過Firebug,Web Inspector,Dragonfly ...或通過簡單地創建一個新的HTML文件並將該表格提交給的action屬性字元素。因此,你的表單處理腳本必須進行消毒,並檢查了服務器上,以及客戶端;客戶端檢查是爲了方便用戶(以防止不必要的頁面重新加載,提交等),它是安全特徵,並且不應當被使用,或者錯誤,因爲這樣的。

0

你不能只用HTML。

您需要添加表單驗證(以防止空字符串),HTML5表單驗證可以爲您執行此操作(檢查http://www.broken-links.com/2011/03/28/html5-form-validation/),但並非所有瀏覽器都支持它,因此您需要使用JavaScript來驗證表單。

有一些JavaScript庫會使用舊的瀏覽器,並使其表現得像支持HTML5的瀏覽器(檢查http://www.matiasmancini.com.ar/jquery-plugin-ajax-form-validation-html5.html)。

您還需要檢索已存在於數據庫中的公司,並根據用戶輸入檢查它們,並在需要時提醒他。

最重要的是,在插入數據庫之前,您需要驗證PHP中的數據(例如,檢查空字符串)。