0

sqlデータベースに情報を追加するphpフォームがあります。テキストボックスの数字のみを受け入れるために必要です。

これは私のphpフォームです

<form id="MakeBid" action="MakeBid.php" method="POST">
    <input type="hidden" name="propertyID" value="1" />
    <div>Bid Now
        <input type="text" name="pricesoldfor" />
    </div>
    <input id="submit" input type="submit" value="Submit" />
</form>
4

4 に答える 4

1

ロードせずにフィードバックするためのクライアント側、あなたは次のようなことをすることができます

<form [...] onsubmit="if( !this.pricesoldfor.match(/\d+/) ) { 
     alert('Please enter only numbers for the price!'); return false; 
}">

(この例をインラインで記述しました。フォームはおそらく大きくなるため、onsubmit属性を使用せず、代わりに適切なイベントハンドラーをアタッチすることをお勧めします。preventDefault ()を確認してください。通常、これの方が適しています。の代替return false。)

実際に行う必要があるのは、データベースに保存する前に、 PHP(サーバー側)で数値のみであることを検証することです。たとえば、次のようになります。

if((string)(int)$input === $input) { /*was a number*/ } else { /*was not a number*/ }

これらは両方とも完全な数値(整数)のみを許可するため、「35.43」などは許可されないことに注意してください。is_numeric()を見てください

于 2012-04-19T10:47:07.063 に答える
1

クライアント側の検証にはjavascriptを使用できます。これは非常に安全ではありませんが、高速であり、応答性の高いユーザーエクスペリエンスを提供するために使用できますが、常にサーバー側の検証でバックアップする必要があります。

正規表現とif/elseまたはcase/switchを組み合わせて使用​​して、入力された文字を確認できます。

if (!preg_match("/^[0-9]", $textfield)) 
// display error message
于 2012-04-19T10:49:39.230 に答える
1
$num = 123456;
if(!filter_var($num, FILTER_VALIDATE_INT))
 {
 echo("Not number");
 }
else
 {
 echo("Number");
 }
于 2012-04-19T10:54:14.290 に答える
0

すべてのタイプの検証のために訪問

http://www.position-relative.net/creation/formValidator/

デモは下にあります

http://www.position-relative.net/creation/formValidator/demos/demoValidators.html

于 2012-04-19T10:43:14.330 に答える