加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Php 动态表单名称的验证

发布时间:2022-10-15 11:15:37 所属栏目:PHP教程 来源:
导读:  Php 动态表单名称的验证

  php

  Php 动态表单名称的验证,php,javascript,Php,Javascript,因此,我在PHP页面中使用以下Javascript函数进行表单验证include ($_SERVER['DOCUMENT_ROOT'] . &#
  Php 动态表单名称的验证
 
  php
 
  Php 动态表单名称的验证,php,javascript,Php,Javascript,因此,我在PHP页面中使用以下Javascript函数进行表单验证include ($_SERVER['DOCUMENT_ROOT'] . '/validators.php');echo "因此,我在PHP页面中使用以下Javascript函数进行表单验证
 
  include ($_SERVER['DOCUMENT_ROOT'] . '/validators.php');
  echo "\n";
  echo "\n";
  但是由于我的表单在名称中使用了$variable,我不知道如何将它与我的验证器一起使用。这是上述验证器功能的扩展部分:
 
  function validate_numeric($formname, $fieldname, $fielddesc){
     echo "var checkOK = '0123456789';\n";
     echo "var checkStr = $formname.$fieldname.value;\n";
     echo "var allValid = true;\n";
     echo "var validGroups = true;\n";
     echo "var decPoints = 0;\n";
     echo "var allNum = '';\n";
     echo "for (i = 0;  i < checkStr.length;  i++)\n";
     echo "{\n";
     echo "ch = checkStr.charAt(i);\n";
     echo "for (j = 0;  j < checkOK.length;  j++)\n";
     echo "if (ch == checkOK.charAt(j))\n";
     echo "break;\n";
     echo "if (j == checkOK.length)\n";
     echo "{\n";
     echo "allValid = false;\n";
     echo "break;\n";
     echo "}\n";
     echo "allNum += ch;\n";
     echo "}\n";
     echo "if (!allValid)\n";
     echo "{\n";
     echo "alert('Please enter only digit characters in the $fielddesc field.');\n";
     echo "$formname.$fieldname.focus();\n";
     echo "return (false);\n";
     echo "}\n";
     return $x;
  }
  任何建议都会大有帮助。如果需要更多信息,请告诉我,我会尽快提供
 
  编辑#1
 
  因此,我尝试了您所说的使用dbl引号的方法,这就是我在页面上看到的源代码:
 
  var checkOK = '0123456789';
  var checkStr = theForm.txtQuantity_.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = '';
  for (i = 0;  i < checkStr.length;  i++)
  {
  ch = checkStr.charAt(i);
  for (j = 0;  j < checkOK.length;  j++)
  if (ch == checkOK.charAt(j))
  break;
  if (j == checkOK.length)
  {
  allValid = false;
  break;
  }
  allNum += ch;
  }
  if (!allValid)
  {
  alert('Please enter only digit characters in the Quantity field.');
  theForm.txtQuantity_.focus();
  return (false);
  }
  var checkOK='0123456789';
  var checkStr=格式txtQuantity_uu2;值;
  var allValid=true;
  var validGroups=true;
  var decPoints=0;
  var-allNum='';
  对于(i=0;i
  txtQuantity\后面不应该有某种值吗?在支票上
 
  我在这个页面上遇到了太多麻烦,我真的认为它只是讨厌我,并且尽一切可能不工作。
 
  validate\u numeric('theForm','txtQuantity.$DeptID','Quantity')将按字面意思传递
  txtQuantity\uu$DeptID
 
  。单引号不能解释变量
 
  您必须将其至少放在双引号中,如下所示:
 
  validate_numeric('theForm','txtQuantity_u$DeptID','Quantity')
 
  在某些编辑器中,如果你这样做,它会更加清晰
 
  validate_numeric('theForm','txtQuantity{$DeptID}','Quantity')
 
  我还注意到您的函数一直在
  echo
 
  ing。确保有一个字符串在结尾处返回,这样您就可以执行echo validate\u numeric
 
  而不是将它放在那里。输出的函数很难移动/重构
 
  $x
 
  在您返回时是完全未定义的,并且可能会在日志中填充通知
 
  好吧,所以我尝试了您所说的PHP表单验证,有{}和没有{}的情况,但仍然不起作用。我编辑我的问题是为了向您展示我在javascript的页面源代码中得到了什么。(在编辑#1下)调用函数时,是否确定定义了
 
  $DeptID
 
  这就是为什么您也会看到一个空字符串。如果您没有看到关于
 
  $x
 
  未定义的通知,您应该更改
 
  PHP
 
  设置,以便在调试时将它们吐出。
 
  function validate_numeric($formname, $fieldname, $fielddesc){
     echo "var checkOK = '0123456789';\n";
     echo "var checkStr = $formname.$fieldname.value;\n";
     echo "var allValid = true;\n";
     echo "var validGroups = true;\n";
     echo "var decPoints = 0;\n";
     echo "var allNum = '';\n";
     echo "for (i = 0;  i < checkStr.length;  i++)\n";
     echo "{\n";
     echo "ch = checkStr.charAt(i);\n";
     echo "for (j = 0;  j < checkOK.length;  j++)\n";
     echo "if (ch == checkOK.charAt(j))\n";
     echo "break;\n";
     echo "if (j == checkOK.length)\n";
     echo "{\n";
     echo "allValid = false;\n";
     echo "break;\n";
     echo "}\n";
     echo "allNum += ch;\n";
     echo "}\n";
     echo "if (!allValid)\n";
     echo "{\n";
     echo "alert('Please enter only digit characters in the $fielddesc field.');\n";
     echo "$formname.$fieldname.focus();\n";
     echo "return (false);\n";
     echo "}\n";
     return $x;
  }
 
  validate_numeric('theForm', 'txtQuantity_$DeptID', 'Quantity');
 
  var checkOK = '0123456789';
  var checkStr = theForm.txtQuantity_.value;
  var allValid = true;
  var validGroups = true;
  var decPoints = 0;
  var allNum = '';
  for (i = 0;  i < checkStr.length;  i++)
  {
  ch = checkStr.charAt(i);
  for (j = 0;  j < checkOK.length;  j++)
  if (ch == checkOK.charAt(j))
  break;
  if (j == checkOK.length)
  {
  allValid = false;
  break;
  }
  allNum += ch;
  }
  if (!allValid)
  {
  alert('Please enter only digit characters in the Quantity field.');
  theForm.txtQuantity_.focus();
  return (false);
  }
 
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!