-5

これは、電子メールで送信されるフォームの一部です。オプションの状態を選択すると、テキストフィールドの状態が必要になります。そうでない場合は、郡と郵便番号についても同じです。私が欲しいのは、これを検証して電子メールを送信できるようにするためのphpですが、これまでのところ達成できていません。

HTMLは次のとおりです。

<select multiple="multiple" name="geographic" id="geographic">
    <option value="state">State</option>
    <option value="county">County</option>
    <option value="zip">Zip Code</option>
</select>
<label for="state">What state?</label>
<input id="state" name="state" type="text">
<label for="county">What County?</label>
<input id="county" name="county" type="text">
<label for="zipcode">What is the Zip Code? *</label>
<input id="zipcode" name="zipcode" type="text">
4

2 に答える 2

1

フロントエンドでの検証を可能にし、ページの読み込みを必要としないを使用できますJavascript。次のようなものが機能するはずです。

<head>
<script type="text/javascript">
function SelectValidator() {
  // Get the select object
  var index = document.getElementById("geographic").selectedIndex;
  var select = document.getElementById("geographic").options;

  // Get our input elements
  var county = document.getElementById('county');
  var state = document.getElementById('state');
  var zipcode = document.getElementById('zipcode');

  if (select[index].value === "county") {
    if (county.value === null || county.value === "") {
      alert("Please complete the County field");
    } else {
      alert("You could simply put a return statement here.");
    }
  } else if (select[index].value === "state") {
    if (state.value === null || state.value === "") {
      alert("Please complete the state field");
    } else {
      alert("You could simply put a return statement here.");
    }
  } else if (select[index].value === "zip") {
    if (zipcode.value === null || zipcode.value === "") {
      alert("Please complete the Zip Code field");
    } else {
      alert("You could simply put a return statement here.");
    }
  }
}
</script>
</head>

そしてあなたのフォーム:

<form>
<select multiple="multiple" name="geographic" id="geographic">
    <option value="state">State</option>
    <option value="county">County</option>
    <option value="zip">Zip Code</option>
</select>

<label for="state">What state?</label>
<input id="state" name="state" type="text">

<label for="county">What County?</label>
<input id="county" name="county" type="text">

<label for="zipcode">What is the Zip Code? *</label>
<input id="zipcode" name="zipcode" type="text">


<button type="button" onclick="SelectValidator()">Display index</button>
</form>
于 2013-01-14T19:31:58.553 に答える
-1

まず、コードをフォームにラップする必要がありますが、おそらく既にそれを行っていますか? そうでない場合は、http://www.w3schools.com/php/php_forms.aspをご覧ください。

フォームが投稿される php ファイルは $_POST で受け取ります。geographicit の場合は $_POST['geographic'] です。状態も同様です。その値にアクセスする方法がわかったので、それを検証できます。

それで

if($_POST['geographic'] == 'state'){

     if(empty($_POST['state'])){
          echo 'state is required';
     }else{
          echo 'state is given, proceed';
     }

}
于 2013-01-14T18:41:37.813 に答える