2

私はPHPとJavaScriptが初めてです。フォームを検証し、フォームの入力フィールドが正しい場合は、php 外部スクリプトに送信します。私はこのようなことを試しました:

<head>
<script type="text/javascript">
  function Validate(){
    var x=document.forms["form"]["firstname"].value;
    var y=document.forms["form"]["lastname"].value;
    var z=document.forms["form"]["age"].value;
    if(x==null || x=="") {
      alert("Input name!");
    } else if(y==null || y=="") {
      alert("Input surname!");
    } else if(z==null || z=="") {
      alert("Input age!");
    } else {
  // IS IT POSSIBLE TO SEND FORM HERE FORM VARIABLES TO PHP SCRIPT?
    }
  }
</script>
</head>
<body>

  <form name="forma" action="validate.php" method="post" onSubmit="return Validate()">
    Firstname: <input type="text" name="firstname">
    Lastname: <input type="text" name="lastname">
    Age: <input type="text" name="age">
    <input type="submit">
  </form>
</body>
</html>
4

4 に答える 4

1

クライアント側 (javascript) で行った場合でも、入力サーバー側 (php) を検証する必要があります。

$_POSTこれを行うには、validate.php で次のようにチェックし
ます。スクリプトのかなり最初に:

if (isset($_POST)) {  // form has been sent

    if (!isset($_POST['firstname']) || strlen($_POST['firstname'])==0) { // no entry 

        $e['firstname']='please enter a firstname!'; // prepare error-msg
    }

    if (!isset($e)) {  // no error, continue handling the data

        // write data to database etc.
    }
}

// in your form...

if (isset($e)) echo "there were errors: ". implode(',',$e);
于 2013-03-19T22:32:02.647 に答える
1

関数から false を返さないので、とにかくフォームを送信する必要があります。validate() 関数が false を返すようにすることで、送信を停止できます。

于 2013-03-19T22:23:59.640 に答える
1

return falseあなたのコードは正しいように見えますが、フォームが送信されないようにするためにおそらく失敗したいという事実を除けば。false を返さない場合、フォームはそのまま送信を続けます。

また、おそらくフォームに名前を付けるつもりではformなかったと思いますforma

于 2013-03-19T22:24:21.893 に答える
1

このコードを入れる必要があります:

function Validate(){
var x=document.forms["form"]["firstname"].value;
var y=document.forms["form"]["lastname"].value;
var z=document.forms["form"]["age"].value;
if(x==null || x=="") {
  alert("Input name!");
  return false;
} else if(y==null || y=="") {
  alert("Input surname!");
  return false;
} else if(z==null || z=="") {
  alert("Input age!");
  return false;
} else {
  return true;
}
}
于 2013-03-19T22:39:11.723 に答える