首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证opencart中新添加的注册表

问验证opencart中新添加的注册表
EN

Stack Overflow用户
提问于 2013-10-24 00:54:46
回答 1查看 3.4K关注 0票数 2

我已经为注册表单添加了一个名为ID Number的新字段,我希望将其作为必填字段进行验证。我添加了以下代码

catalog\language\english\account\register.php

catalog\language\english\checkout\checkout.php

代码语言:javascript
复制
$_['antry_nicd']          = 'ID Number:';
$_['error_nicd']          = 'Please enter a valid ID Number!';

在控制器中

catalog\controller\checkout\register.php

代码语言:javascript
复制
if ((utf8_strlen($this->request->post['nicd']) < 1) || (utf8_strlen($this->request->post['nicd']) > 11)) {
                    $json['error']['nicd'] = $this->language->get('error_nicd');
                }

catalog\controller\checkout\guest.php

代码语言:javascript
复制
if (isset($this->session->data['guest']['nicd'])) {
    $this->data['nicd'] = $this->session->data['guest']['nicd'];
} else {
    $this->data['nicd'] = '';
}

在我的表单中,它显示了文本字段,但它没有验证或显示错误,所有其他必填字段都显示错误。

谁能告诉我怎样才能让它显示错误,我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-10-24 06:31:32

您需要向模板文件中添加一些代码...

打开catalog/view/theme/*/template/checkout/register.tpl并找到以下内容:

代码语言:javascript
复制
<input type="text" name="email" value="" class="large-field" />

然后在它之后添加:

代码语言:javascript
复制
  <br />
  <br />
  <span class="required">*</span> <?php echo $entry_ncid; ?><br />
  <input type="text" name="ncid" value="" class="large-field" />

然后打开catalog/view/theme/*/template/checkout/checkout.tpl并找到以下内容:

代码语言:javascript
复制
if (json['error']['email']) {

你会发现有三种情况...两个是付款详细信息,一个是送货详细信息(下面的"if (json‘’error‘) {“行显示它是送货地址还是付款地址),这取决于您的配置是否执行了所有这三项操作……

在它之前添加:

代码语言:javascript
复制
if (json['error']['ncid']) {
                $('#payment-address input[name=\'ncid\'] + br').after('<span class="error">' + json['error']['ncid'] + '</span>');
            }

然后,您需要对寄存器模板文件执行相同的操作...

打开catalog/view/theme/*/template/account/register.tpl找到以下内容:

代码语言:javascript
复制
<td><input type="text" name="email" value="<?php echo $email; ?>" />

然后在后面加上(将其偏移4):

代码语言:javascript
复制
    <tr>
      <td><span class="required">*</span> <?php echo $entry_ncid; ?></td>
      <td><input type="text" name="ncid" value="<?php echo $ncid; ?>" />
        <?php if ($error_ncid) { ?>
        <span class="error"><?php echo $error_ncid; ?></span>
        <?php } ?></td>
    </tr>

如果我的回答有帮助的话请投票给我。

这应该能解决这个问题。如果你有任何问题请告诉我。

非常感谢Jeremy

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

https://stackoverflow.com/questions/19547769

复制
相关文章

相似问题

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