2

AJAX を使用したフォームの検証について、ライブ フィードバックをユーザーに提供するコードを書いています。長さをチェックし、フィールドが空かどうかを確認しました。ここで、ユーザーの入力をサニタイズして、サニタイズされた入力がユーザーの元の入力と異なる場合は、許可されていない文字を伝えます。

私がこれまでに書いたコードは、いくつかの文字、特に「£」記号が応答しないことを除いて機能します。json_encode とそのエンコーディングに関連していると思います。

コードは次のとおりです。

  $user_input = 'asdfsfs£';
  $strip_array = str_split(strip($user_input));
  $orig_array = str_split($user_input);
  $diff_array = array_diff($orig_array,$strip_array);
  $diff_str = implode(', ',$diff_array);
  $final = json_encode($diff_str);

  function strip($input){return htmlentities(strip_tags($input),ENT_QUOTES);}

誰かが解決策を見つけられることを願っています。

4

1 に答える 1

0

これを AJAX 経由で行う場合は、これを実現するための JavaScript 関数を作成する必要があります。

サーバーが次の形式の JSON オブジェクトを返すようにします。

{
    original: 'asdfsfs£',
    edited: 'asdfsfs',
    illegalChars: ['£']
}

あなたのHTMLでは、フォーム検証メッセージを出力できるフォーム入力フィールドの横に空の要素が必要です

<input type="text" id="myTextField" />
<span id="myTextFieldLabel" />

検証データに従って、JavaScript で myTextFieldLabel コンポーネントのコンテンツを更新できるようになりました。

ショーン

于 2010-05-17T20:23:30.937 に答える