2014-09-05 33 views
0

本学期我正在做noobie PHP编码的事情。我有一个任务,它拥有一个php文件中的所有html。我将添加if语句,如果任何字段为空且在数字字段中输入负数时将生成错误消息。PHP无法为空字段生成错误消息

这很简单,答案最简单。没有数组或类似的东西。只要直/如果等。我也肯定这是一件非常明显和简单的事情,我只是没有得到;充其量,我是SQL以外的笨拙编码器。你可以看到我试图获得错误信息,即使它不起作用,我仍然留下这些信息。希望这会导致我有缺陷的想法朝向的地方。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Product Discount Calculator</title> 
    <link rel="stylesheet" type="text/css" href="main.css" /> 
</head> 

<body> 
    <div id="content"> 
     <h1>Product Discount Calculator</h1> 
     <form action="display_discount.php" method="post"> 
      <?php $error_message = " "; ?> 

      <div id="data"> 
       <label>Product Description:</label> 
       <input type="text" name="product_description"/><br /> 
       <?php if (empty($product_description)) {$error_message = 'This field cannot be blank'}; ?> 
       <span class="error">* <?php echo $error_message;?></span> 

       <label>List Price:</label> 
       <input type="text" name="list_price"/><br /> 

       <label>Discount Percent:</label> 
       <input type="text" name="discount_percent"/>%<br /> 
      </div> 

      <div id="buttons"> 
       <label>&nbsp;</label> 
       <input type="submit" value="Calculate Discount" /><br /> 
      </div> 

     </form> 
    </div> 
</body> 
</html> 
+0

除非你正在运行一个石器时代或令人难以置信的错误配置的PHP安装启用了register_globals,你永远不会得到任何东西'$ product_description',所以你的错误信息将会被设置。 – 2014-09-05 14:55:05

回答

1

所以有几件事情应该在这里指出。

HTML是客户端。 PHP是切切实实的一面。所以一般情况下你会将表单提交给一些PHP代码,看看提交的字段是否会导致错误,然后设置一些变量来获取错误。

当提交表单,并且想知道它们里面的值是什么时,您需要在输入元素上使用ID。这将允许你与$ _POST数组交谈(我知道你说的不是数组,但是这是将表单提交给PHP的方式)。

说了这么多,我们通常不会允许他们在输入中输入无效数据。通常会使用一些JavaScript来警告用户他们的输入无效,从而带来更好的用户体验。

至于这是一个家庭作业,请看看$ _POST在PHP中,并决定是否可以/要使用JavaScript来阻止错误发生之前。 (有吨的文章/帖子有帮助与上述两者)

+0

$ _POST实际上包含在本章中!还有第二页,其中有一些很好,结果页面。所以我需要添加一些POST数组这里是你在说什么?像设置初始$ error_message = $ _POST('error_message'),然后在if语句中为每个单独的字段设置错误消息? – Brocktoon 2014-09-05 15:04:27

+0

您的表单操作会向$ display_discount.php发送一个$ _POST信息数组,PHP文件将在$ _POST数组中添加表单的所有值(添加ID后)。然后您可以测试空的输入字段并相应地显示错误。 – 2014-09-05 15:06:10

+0

我注意到ID不是必需的,但是如果您需要访问特定的字段,那么您的输入字段中的ID必须带有ID。在你的情况下不需要,但我觉得这是很好的做法。这是一个很好的链接。 http://stackoverflow.com/questions/7470268/html-input-name-vs-id – 2014-09-05 15:10:51

相关问题