0

私はこれを理解しようとしていますが、いくつかの問題に直面しています。

基本的に、私はいくつかの入力を含むフォームを持っています。フォームアクションをスクリプトに設定しました。このスクリプトは、送信時に新しいページにいくつかの情報を出力し、ユーザーにメールを送信します。素晴らしい。

私の問題は、彼らの入力を検証することになるとです。空のままになっているフィールドがないことを確認したいと思います。また、空のままになっている場合、ユーザーが[送信]を押すと、ページを再読み込みして、空のままになっているボックスを強調表示し、以前の情報を保持します。

私はこれをどのように行うべきか理解していません。HTMLをもう一度出力できると思っていましたが、フィールドが強調表示されています。これは機能しますが、コードが非常に冗長であり、URLが処理スクリプトの場所になるため、URLは以前と同じではありません。処理スクリプトで検証してから元のページにリダイレクトできると思いましたが、入力を保持して空の入力にフラグを立てることができませんでした。

私は適切な解決策を見つけるためにグーグルで検索しました、そして彼らの多くは、ユーザーが送信を押したかどうかをチェックするフォームの上にある最初のフォームページにphpスクリプトがあり、そこで検証するというこの解決策を扱っています実行し、結果を出力します(このチュートリアルの例:http://papermashup.com/php-form-validation/)。かっこいいですが、いくつか質問があります。

  • これは、送信時にトリガーされるJavaScriptソリューションとどのように異なりますか?なぜ私はそれをしないのですか?
  • どうすればフォームの上に配置できますか?コードは上から下に読み取られると思ったので、フォームにヒットして送信を押すと、上のフォームがどのようにトリガーされるかわかりません。
  • このソリューションではCSSに影響を与えることはできませんか?ボックスを赤で強調表示するなど?
  • 検証に問題がない場合、どうすれば処理スクリプトに移動できるようになりますか?フォームのアクション属性としてそれを持っていますが、これはどうやらそれを止めているようです。

これを行う正しい方法は何ですか?私はとても混乱しています。

4

1 に答える 1

0

それを行うにはあまりにも多くの方法があります最初のphpはサーバー側の言語です私はあなたが知っていると思いますそして検証に関しては、onsubmitイベントで検証を行うのはjavascript(クライアント側)のようには機能しません

1つの解決策は、メインページのフォームを検証することです

私はこれを速く書いた、私が引用を逃したかどうかをチェックするか...しかしこれはそれをするべきです

<?php

$redirect_form="";
$highlight_field="";
$error="";
$valid=true;

if(isset($_POST["submit"]) && $_POST["submit"]=="Submit"){ //assuming that you have an input text called: first_name

$first_name=trim($_POST["first_name"]);

if($first_name==""){
$error.="Please enter your first name";
$highlight_field="class='highlight_field'";
$valid=false;
}

if($valid){

$redirect_form="<form name='new_page' action='new_page.php' method='post'>";
$redirect_form="<input type='hidden' name='first_name' value='".$first_name."' />";
$redirect_form="</form>";
$redirect_form="<script type='text/javascript>document.new_page.submit()</script>";

}

?>

<html>
<head>
<style>.highlight_field: color:#990000; </style>
<body>
<?php

if(isset($_POST["submit"]) && $_POST["submit"]=="Submit"){

if(!$valid){
echo error;
}
else{
echo $redirect_form;
}
?>

<form name='main_page' action='main_page.php' method='post'>
<span <?php echo $highlight_field; ?>>First name</span><input type='text' name='first_name' value='' />
<input type='submit' name='submit' value='Submit' />

</form>

</body>
</head>
</html>

またはあなたはajaxでそれを行うことができます

于 2013-01-19T22:12:12.310 に答える