首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单PHP表单模板

简单PHP表单模板
EN

Stack Overflow用户
提问于 2016-10-28 17:31:29
回答 2查看 103关注 0票数 0

您有一个PHP表单,其中包含以下字段:

(代码块1)

代码语言:javascript
复制
City: <input type="text" name="city"><br>

表单的action attribute设置为itself。当submitted到服务器时,页面将验证该字段,如果该字段无效,则返回相同的页面:

  1. 错误信息
  2. 窗体文本输入框周围的红色边框。
  3. 用户最初在表单输入文本框中输入的值。

我可以使用if then else构造,如果无效,可以返回code block 2

(代码块2)

代码语言:javascript
复制
<?php echo "The form field with red border has an invalid entry"; ?>
City: <input type="text" name="city"
style="border-color:red" value="<?php echo $record->city ?>"><br>

我的问题是,如果您要在code block 1中添加一些模板,以便不需要code block 2,那么您将如何做呢?

请将回答范围缩小为:

  1. 纯PHP答案(没有任何外部模板库或PHP框架)。
  2. 适用于PHP是他们所知道的唯一服务器端脚本的人(而且他们对PHP相对缺乏经验)。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-28 17:44:59

您可以创建一个与$has_error关联的数组,并将其直接集成到原始表单中,而不是使用if/else,如下所示:

代码语言:javascript
复制
City: 
<input type="text" name="city" class="<?= $has_error['city']['class'] ?>" value="<?= $record->city ?>">
<span><?= $has_error['city']['message'] ?></span>
<br>

并构造验证错误,如下所示:

代码语言:javascript
复制
$has_error = [
  'city' = [
    'class' => '',
    'message'=> ''
  ]
]

然后在验证端应用错误类和消息(无论何时提交表单)。因此,当city输入字段未通过验证时,$has_error数组将如下所示:

代码语言:javascript
复制
$has_error = [
  'city' = [
    'class' => 'error',
    'message'=> 'This field has an error'
  ]
]

错误类如下所示:

代码语言:javascript
复制
.error{
  border: 2px solid red;
}
票数 0
EN

Stack Overflow用户

发布于 2016-10-28 17:46:09

解决这个问题的一个简单方法是将code block 2格式添加到您的CSS文件中,然后使用PHP将类添加到您的输入中。

CSS:

代码语言:javascript
复制
.errorField {
    border-color: red;
}

HTML/内联PHP:

代码语言:javascript
复制
City: <input type="text" <?php echo errorCity ? 'class="errorField"' : '' ?> name="city" value="<?php echo $record->city ?>"><br>

如果输入无效,让您的验证PHP将errorCity设置为true

内联PHP所做的是检查bool errorCity的值,如果它是真的则回显class="errorField",如果它是假的则什么也不做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40310340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档