2017-03-22 7 views
0

私のWordPressサイトに問題があります。関数ファイルにカスタムPHPを使用してカスタムHTMLフォームを作成し、フォームが送信されたときにユーザーを作成してメールを送信するようにしました。それは素晴らしいですが、達成したいことが1つあります。誰かがユーザー名を作成したときに、既にデータベースに存在する場合、ユーザー名が存在するボックスでエラー・タグを付けたいと思います。この操作を処理する現在のコードは以下のとおりです。現在、エラーメッセージ付きのインデックスページに移動し、5秒後にフォームにリダイレクトされます。私はフォームが提出される前に検証を処理することを好むだろう。PHP - フォーム提出のデータ検証(Wordpress)

+0

それでは、ページ上にある間にユーザー名を検証するAJAXリクエストを送信する必要があります。 – Luke

答えて

2

ユーザー名入力フィールドでAJAX呼び出しを行い、それをonkeyupイベントにバインドする必要があるようです。次に、PHPファイルを呼び出すと、このようなものが表示され、結果が成功/失敗メッセージとともに入力の隣に表示されるdivに表示されます。入力したテキストを "user"という名前のURL変数として渡すことができます。

また、ユーザーが実際に送信したときに再検証する必要があるため、既に失敗した場合は元に戻す必要があるため、既存のコードを保持する必要があります。

<?php 
     include("Path to where the username_exists function is defined"); 
     $user = sqlescape($_GET["user"]); 

     if (username_exists($user)){ 
      echo 'That username has already been claimed.'; 
     } else { 
      echo 'That username is available.'; 
     } 
?> 

AJAX呼び出しが(あなたの入力があるところはどこでも以下)実際のフォームに行くとこのようになります。

<script type="text/javascript"> 
    $("#input_id_here").keyup(function() { 
    var requestURL = "Full URL where above PHP file is located?user=" + $(this).val(); 

    $.ajax({ 
     url: requestURL, 
     context: this, 
     type: 'GET', 
     success: function(res) 
     { 
      $('#input_error_div_id_here').html(res);  
     } 
    }); 
}); 
</script> 

あなたはまた基づいて、入力またはエラーのdivに削除/クラスを追加することができますAJAX呼び出しで返された値を返します。 Javascriptは成功の部分に追加されます。

+0

特にAJAXをワードプレスで使用する必要はありませんでした。これがどうなるか知っていますか? –

+0

私はAJAX呼び出しで自分の答えを更新しました。 – dukedevil294

関連する問題