使用php函数和jquery ajax验证表单字段

时间:2012-09-20 09:44:24

标签: php forms validation jquery

我正在使用wordpress,我有一个需要验证的表单。我有一个输入字段来检查以确保它是一个有效的youtube网址。 我用jquery发现了这个漂亮的小方法..

  $("input#video_url").change(function (){
    var matches = $(this).val().match(/^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/);
    if (matches) {
      $(".video-validation").append("<span>Valid</span>");
     } else {
      $(".video-validation").append("<span>This is not a valid youtube url</span>");
     }
  });

但后来我读到这样的验证需要用php来完成,所以不能在客户端进行更改。

我一直在寻找某种类型的明确教程,但找不到。所以我的问题是:

如何在我的functions.php中将url的验证转换为php函数,然后结合jquery使用它来进行ajax验证,然后才能处理表单?

3 个答案:

答案 0 :(得分:0)

用链接做一个ajax帖子:

$.post('validate.php', function(data) {
  $('.result').html(data);
});

在你的 validate.php 文件中做同样的事情:

validate.php

$result = preg_match(/^(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?(?=.*v=((\w|-){11}))(?:\S+)?$/);
if ( $result ) {
  die( '<span>Valid</span>' );
} else {
  die( '<span>This is not a valid youtube url</span>');
}

您的结束代码可能如下所示:

$("input#video_url").change(function (){
  $.post('validate.php', function(data) {
    $('.video-validation').html(data);
  });
});

答案 1 :(得分:0)

享受这个小正则表达式:

if (!preg_match('/^(http:\/\/){0,1}(www\.){0,1}youtube\.com\/watch\?v=([a-z0-9\-_\|]{11})/i', $gyoutube, $matches))
{
    $error = "This ain't a Youtube video";
}

此外,PHP验证在之后完成,而不是在提交表单之前完成。

答案 2 :(得分:0)

这是教程的链接 - http://www.krio.me/how-to-validate-a-url-php/

你也可以使用filter_var()函数 - filter_var('test.com',FILTER_VALIDATE_URL)