1

私はワードプレスを使用していますが、検証する必要のあるフォームがあります。有効なYouTubeURLであることを確認するための入力フィールドがあります。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で行う必要があることを読みました。

私はこれに関するある種の明確なチュートリアルを探していましたが、見つけることができません。だから私の質問は:

このURLの検証をfunctions.phpのphp関数に変換し、それをjqueryと組み合わせて使用​​して、フォームを処理する前にajax検証を行うにはどうすればよいですか?

4

3 に答える 3

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);
  });
});
于 2012-09-20T09:49:01.060 に答える
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の検証は、フォームが送信される前ではなく、後に行われます。

于 2012-09-20T09:49:08.630 に答える
0

ここにチュートリアルのリンクがあります-http ://www.krio.me/how-to-validate-a-url-php/

filter_var()関数を使用することもできます--filter_var('test.com'、FILTER_VALIDATE_URL)

于 2012-09-20T10:00:09.143 に答える