Bootstrap'form-group has-error'无法使用php代码[关闭](Bootstrap 'form-group has-error' not working with php codes [closed])
当我提交空字段时,输入不会变为红色并且不会打印错误消息。 当我使用此代码发送空字段时,如何显示错误消息并使输入框变为红色。
<?php if ( !empty($_POST)) { require 'db.php'; // validation errors $fnameError = null; $lnameError = null; $ageError = null; $genderError = null; // post values $fname = $_POST['fname']; $lname = $_POST['lname']; $age = $_POST['age']; $gender = $_POST['gender']; // validate input $valid = true; if(empty($fname)) { $fnameError = 'Please enter First Name'; $valid = false; } if(empty($lname)) { $lnameError = 'Please enter Last Name'; $valid = false; } if(empty($age)) { $ageError = 'Please enter Age'; $valid = false; } if(empty($gender)) { $genderError = 'Please select Gender'; $valid = false; } // insert data if ($valid) { $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO users (fname,lname,age,gender) values(?, ?, ?, ?)"; $stmt = $PDO->prepare($sql); $stmt->execute(array($fname,$lname,$age,$gender)); $PDO = null; header("Location: index.php"); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row"> <div class="row"> <h3>Create a User</h3> </div> <form method="POST" action="create.php"> <div class="form-group <?php echo !empty($fnameError)?'has-error':'';?>"> <label for="inputFName">First Name</label> <input type="text" class="form-control" required="required" id="inputFName" value="<?php echo isset($fname)?$fname:'';?>" name="fname" placeholder="First Name"> <span class="help-block"><?php echo isset($fnameError)?$fnameError:'';?></span> </div> <div class="form-group <?php echo !empty($lnameError)?'has-error':'';?>"> <label for="inputLName">Last Name</label> <input type="text" class="form-control" required="required" id="inputLName" value="<?php echo isset($lname)?$lname:'';?>" name="lname" placeholder="Last Name"> <span class="help-block"><?php echo isset($lnameError)?$lnameError:'';?></span> </div> <div class="form-group <?php echo !empty($ageError)?'has-error':'';?>"> <label for="inputAge">Age</label> <input type="number" required="required" class="form-control" id="inputAge" value="<?php echo isset($age)?$age:'';?>" name="age" placeholder="Age"> <span class="help-block"><?php echo isset($ageError)?$ageError:'';?></span> </div> <div class="form-group <?php echo !empty($genderError)?'has-error':'';?>"> <label for="inputGender">Gender</label> <select class="form-control" required="required" id="inputGender" name="gender" > <option></option> <option value="male" <?php echo isset($gender)?'selected':'';?>>Male</option> <option value="female" <?php echo isset($gender)?'selected':'';?>>Female</option> </select> <span class="help-block"><?php echo isset($genderError)?$genderError:'';?></span> </div> <div class="form-actions"> <button type="submit" class="btn btn-success">Create</button> <a class="btn btn btn-default" href="index.php">Back</a> </div> </form> </div> <!-- /row --> </div> <!-- /container --> </body> </html>
Inputs don't turn red and does not print the error messages when I'm submitting empty fields. How can I show the error messages and make the input boxes turn red when I'm sending empty fields with this code.
<?php if ( !empty($_POST)) { require 'db.php'; // validation errors $fnameError = null; $lnameError = null; $ageError = null; $genderError = null; // post values $fname = $_POST['fname']; $lname = $_POST['lname']; $age = $_POST['age']; $gender = $_POST['gender']; // validate input $valid = true; if(empty($fname)) { $fnameError = 'Please enter First Name'; $valid = false; } if(empty($lname)) { $lnameError = 'Please enter Last Name'; $valid = false; } if(empty($age)) { $ageError = 'Please enter Age'; $valid = false; } if(empty($gender)) { $genderError = 'Please select Gender'; $valid = false; } // insert data if ($valid) { $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO users (fname,lname,age,gender) values(?, ?, ?, ?)"; $stmt = $PDO->prepare($sql); $stmt->execute(array($fname,$lname,$age,$gender)); $PDO = null; header("Location: index.php"); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row"> <div class="row"> <h3>Create a User</h3> </div> <form method="POST" action="create.php"> <div class="form-group <?php echo !empty($fnameError)?'has-error':'';?>"> <label for="inputFName">First Name</label> <input type="text" class="form-control" required="required" id="inputFName" value="<?php echo isset($fname)?$fname:'';?>" name="fname" placeholder="First Name"> <span class="help-block"><?php echo isset($fnameError)?$fnameError:'';?></span> </div> <div class="form-group <?php echo !empty($lnameError)?'has-error':'';?>"> <label for="inputLName">Last Name</label> <input type="text" class="form-control" required="required" id="inputLName" value="<?php echo isset($lname)?$lname:'';?>" name="lname" placeholder="Last Name"> <span class="help-block"><?php echo isset($lnameError)?$lnameError:'';?></span> </div> <div class="form-group <?php echo !empty($ageError)?'has-error':'';?>"> <label for="inputAge">Age</label> <input type="number" required="required" class="form-control" id="inputAge" value="<?php echo isset($age)?$age:'';?>" name="age" placeholder="Age"> <span class="help-block"><?php echo isset($ageError)?$ageError:'';?></span> </div> <div class="form-group <?php echo !empty($genderError)?'has-error':'';?>"> <label for="inputGender">Gender</label> <select class="form-control" required="required" id="inputGender" name="gender" > <option></option> <option value="male" <?php echo isset($gender)?'selected':'';?>>Male</option> <option value="female" <?php echo isset($gender)?'selected':'';?>>Female</option> </select> <span class="help-block"><?php echo isset($genderError)?$genderError:'';?></span> </div> <div class="form-actions"> <button type="submit" class="btn btn-success">Create</button> <a class="btn btn btn-default" href="index.php">Back</a> </div> </form> </div> <!-- /row --> </div> <!-- /container --> </body> </html>
原文:https://stackoverflow.com/questions/30837053
最满意答案
问题在于你的配置
@Bean public SessionLocaleResolver sessionLocaleResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(new Locale("en", "US")); return localeResolver; }
这将构造名为
sessionLocaleResolver
的bean,但DispatcherServlet
查找名称为localeResolver
的bean。 如果未检测到它,它将使用默认值,即AcceptHeaderLocaleResovler
。该解决方案非常简单,将您的方法重命名为
localeResolver
或在@Bean
注释中包含name
属性。@Bean public LocaleResolver localeResolver() { ... }
要么
@Bean(name="localeResolver")
The problem lies in your configuration
@Bean public SessionLocaleResolver sessionLocaleResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(new Locale("en", "US")); return localeResolver; }
This constructs a bean with the name
sessionLocaleResolver
however theDispatcherServlet
looks for a bean with the namelocaleResolver
. If this isn't detected it will use the default, which is aAcceptHeaderLocaleResovler
.The solution is quite simple rename your method to
localeResolver
or include aname
attribute in the@Bean
annotation.@Bean public LocaleResolver localeResolver() { ... }
or
@Bean(name="localeResolver")
相关问答
更多-
I18n在服务层(I18n in service layer)[2023-08-17]
我通常做的是拥有具有密钥和消息属性的自定义异常。 密钥是该错误的i18n密钥,该消息是默认消息。 所以在服务中: try{ some code } catch(SomeException e){ handleAppropriatly; throw new MyCustomException("error.foo","Some default message",e); } 该操作捕获消息并使用密钥将其正确添加到正确的位置(addActionError / addFieldError),从而允 ... -
路线错误I18n和rspec(Route error I18n and rspec)[2022-08-07]
既然你说这些问题只出现在RSpec测试中并且应用程序工作正常,那么我假设你期望这些URL采用/:locale/profile(.:format)的形式。 所以,如果您的应用程序中有类似以下路由范围的内容... 配置/ routes.rb中 scope ":locale", locale: /#{I18n.available_locales.join("|")}/ do get 'profile', to: 'users#profile' # other routes end ...在控制器(可 ... -
Spring Boot i18n分辨率(Spring Boot i18n resolution)[2022-11-11]
对于任何类似的问题,这是解决方案 这里的问题是我使用的Basename路径,我必须在类路径中定义完整路径,而不使用区域后缀和文件扩展名(对于我来说,这是): @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource ... -
我找到了解决方案,我正确地给出了ResourceBundles的路径,下面是更改: @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("WEB-INF/classes/stat ...
-
i18n和l10n应该在哪一步发生?(At which step should i18n and l10n happen? At the beginning or at the end?)[2023-03-11]
国际化(国际化)必须成为发展的一部分。 如果你等到最后,你需要重写部分代码。 考虑下列项目: 允许特定地区的号码和日期格式 外部化所有文本资源 创建一个能够很好地处理文本扩展的设计 允许公制与英制 ...(详情请参阅此链接 ) 所有这些项目在设计和开发过程中都需要不同的方法。 “先让英文先出来吧,以后我们会担心剩下的”,这是一个很大的(但很常见的)错误。 这种方法几乎肯定会导致更多的金钱,时间和挫折时间花在本地化时间到来之前。 I18N只是您在开发过程中需要应用的一套最佳实践。 即使您不打算本地化您的应用程 ... -
您可以使用PRG(POST-Redirect-GET)-pattern。 您必须通过POST请求进入您的页面。 并在您的应用程序创建控制器,将完成所有业务,而不是将用户重定向到另一个地址,而无需您的请求参与GET请求和另一个控制器。 没有用户更改会影响您的主题或语言。 You can use PRG(POST-Redirect-GET)-pattern. You will have to go on your page by POST request. And in your app create cont ...
-
Java,Spring Internationalization(I18N)无法正常工作(Java, Spring Internationalization(I18N) not working)[2023-07-01]
您配置了消息源以在类路径中查找属性文件(“classpath:messages”)。 您使用“/ WEB-INF / resources”的文件夹不是默认情况下类路径的一部分。 所以我的猜测是,如果你将属性文件移动到/ WEB-INF / classes(在提取的战争中)它应该工作。 或者您尝试将basename的属性从“classpath:messages”更改为“/ WEB-INF / resources / messages”。 但我不确定这是否有效。 延 you configured the mes ... -
Spring 4 i18n&l10n(不能更改HTTP accept头)(Spring 4 i18n & l10n (Cannot change HTTP accept header))[2022-12-16]
问题在于你的配置 @Bean public SessionLocaleResolver sessionLocaleResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(new Locale("en", "US")); return localeResolver; } 这将构造名为sessionLocaleReso ... -
如何在I18n中使用Spring?(How to use Spring with I18n?)[2023-10-16]
我粗略看了一下这个教程。 以下是我将如何做到这一点: 首先配置它: 在返回MessageSource实现的配置类中创建一个Bean。 @Bean public MessageSource messageSource() //The bean must be named messageSource. { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messa ... -
使用Spring Data REST处理自定义异常(i18n)(Handling custom exceptions (i18n) with Spring Data REST)[2023-10-31]
@ControllerAdvice(annotations = RepositoryRestController.class) public class GenericExceptionHandler { @Autowired private MessageSource messageSource; @ExceptionHandler //if you don't use Exception e in method you can remove it , live only ...