【问题标题】:Validate against list of codes根据代码列表进行验证
【发布时间】:2013-05-28 15:27:45
【问题描述】:

一直在尝试整理一些基本的表单验证,除了一些远程验证之外,一切都可以正常工作。我基本上有一个存储在“/_companycodes”中的可用代码列表,因此根据文档使用以下代码:

$("#register_member_form").validate({
      m_field_id_1: {
        required: true,
        remote: "/_companycodes"
      }
});

在 /_companycodes 中包含以下内容(1 和 2 是我的公司代码):

<?php
  var codes = ["1","2"];
  var in_array = $.inArray(value.toUpperCase(), codes);

  if(in_array == -1) {
    $valid = 'false';
  } else {
    $valid = 'true';
  }
?>

但是这似乎会引发错误,我很确定我犯了一个非常愚蠢的错误,但是在一遍又一遍地看这个之后无法完全解决......干杯!

【问题讨论】:

  • PHP 根本无法运行。您是否刚刚使用了 javascript 并将其包装在 PHP 标记中?
  • 哇,我知道我做了一些非常愚蠢的事情,谢谢!

标签: php jquery validation jquery-validate


【解决方案1】:

使用 JQuery Validation Plugin 的验证(我想这是您要使用的)应该是这样的:

$("#register_member_form").validate({
      rules: {
          m_field_id_1: {
            required: true,
            remote: "/_companycodes"
          }
      }
});

现在是 PHP 部分,这不是 PHP!

您确定要进行这样的远程检查吗?如果你愿意,插件文档说它使用 GET 将名称、值对传递给远程脚本,所以:

<?php
$user_code=$_GET["m_field_id_1"];
$codes= array("1", "2");
echo in_array($user_code, $codes);
?>

【讨论】:

  • 感谢 Naryl,这对您有很大帮助!你提到我确定我想做这样的远程检查,我不确定我的其他选择吗?我需要从数据库中提取公司代码,我宁愿不在初始页面代码中显示它们。我还需要用这个脚本判断 user_code 是真还是假吗?
  • @Nick 如果您想根据数据库检查它们,是的,您必须像这样远程进行,您唯一需要更改的是 $codes 数组并使用来自的代码填充它你的数据库。 in_array 函数返回 true 或 false,我猜插件将能够使用这些值。
  • @Nick 我刚刚注意到 return 在这里可能不起作用,因为验证插件使用 AJAX,我将更新我的答案,将其更改为 echo
猜你喜欢
  • 2020-03-05
  • 2014-02-04
  • 2017-03-30
  • 1970-01-01
  • 2013-12-01
  • 2016-04-11
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
相关资源
最近更新 更多