2011-11-25 149 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中的数据(例如,检查空字符串)。