コメントで話し合った後、私はあなたが何を望んでいるかを理解しています。
まず、説明。検証が行われる場所は2つあります。フロントエンド(Webページ)とバックエンド(投稿された値を保存するPHPスクリプト)です。本当に保存したくないもの(たとえば、エスケープされていないSQL文字列、長すぎるフィールドなど)は、 Javascriptの検証を回避するのは簡単なので、PHPで検証する必要があります。たとえば、誰かがあなたのWebページにアクセスすることさえせずに、不正な値を含むPOSTをサーバーに送信することを妨げるものは何もありません。
バックエンドで検証を実行する必要がある場合でも、フロントエンドで同じ検証を実行するのはユーザーフレンドリーであるため、ユーザーはエラーが表示されるまで待つ必要はありません。これにより、サーバーへのトラフィックも減少します。大規模なプロジェクトでおそらくやりたいことは、検証ルールを一元的に記述し、それらのルールを使用してPHPとJavascriptの両方の検証を動的に生成するための何らかのシステムを用意することです。これを行うことの利点は、ビジネスルールを2つの場所で複製しないことですが、小規模なプロジェクトでは、面倒なことをする価値はないでしょう。
フロントエンドでの検証は次のようになります。イベントハンドラーを適切な1つまたは複数のイベントにバインドし(たとえば、onkeydown = "validateUserName()"を追加して、検証が少し速く反応するようにすることができます)、警告テキストを適切に更新します。
<form action="" method="post">
<ul class="ul-reg">
<li>
<p>Username: </p>
<input id="username" name="username-field" type="text" onblur="validateUserName()" />
<span id="UsernamehelpText"></span>
</li>
</ul>
</form>
<script type="text/javascript">
function validateUserName() {
var userNameElement = document.getElementById('username');
//Do your work: Get the value of the user name field, check
// the values against your validation rules...
var helpText = document.getElementById('UsernamehelpText');
if(isValid)
helpText.innerHTML = "";
else
helpText.innerHTML = "Invalid!";
}
</script>
バックエンドでは、フォームを処理するときに、PHPで同じルールをチェックして、不正な値が悪意を持って投稿されたり、Javascriptのエラーが原因で投稿されたりしないようにする必要があります。エラーが見つかった場合は保存せず、代わりに、入力フィールドに送信された値と何が無効であったかを示すメッセージを使用してフォームを再レンダリングできます。これにより、ユーザーは値を失うことなく入力を変更できます。提出されました。