验证在opencart中提交的新添加的注册表

时间:2013-10-23 16:54:46

标签: php opencart

我为注册表单添加了一个名为ID Number的新字段,我想将其验证为必填字段。我添加了以下代码

目录\语言\英语\帐户\ register.php

目录\语言\英语\结帐\ checkout.php

$_['antry_nicd']          = 'ID Number:';
$_['error_nicd']          = 'Please enter a valid ID Number!';

并在控制器中

目录\控制器\结帐\ register.php

if ((utf8_strlen($this->request->post['nicd']) < 1) || (utf8_strlen($this->request->post['nicd']) > 11)) {
                    $json['error']['nicd'] = $this->language->get('error_nicd');
                }

目录\控制器\结帐\ guest.php

if (isset($this->session->data['guest']['nicd'])) {
    $this->data['nicd'] = $this->session->data['guest']['nicd'];
} else {
    $this->data['nicd'] = '';
}

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

有人可以告诉我如何让它显示错误以及我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

打开目录/视图/主题/ * / template / checkout / register.tpl并找到以下内容:

<input type="text" name="email" value="" class="large-field" />

然后添加:

  <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并找到以下内容:

if (json['error']['email']) {

您会发现有三次出现...两次是用于付款详细信息,另一次是用于发货详细信息(下面的行“if(json ['error'] ['email']){”显示是否是发货地址或付款地址),取决于您的配置将取决于您是否全部三个...

之前添加:

if (json['error']['ncid']) {
                $('#payment-address input[name=\'ncid\'] + br').after('<span class="error">' + json['error']['ncid'] + '</span>');
            }

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

打开目录/视图/主题/ * / template / account / register.tpl找到以下内容:

<td><input type="text" name="email" value="<?php echo $email; ?>" />

然后添加(将其偏移4):

    <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>

如果有帮助,请将我的答案投票赞成......

那应该解决它......如果你有任何问题,请告诉我......

非常感谢 杰里米