1

フォームを含むHTMLページがあります。次に、フォームはPHPページに投稿され、そこでユーザーに電子メールが送信されます。1〜58の値の「状態」ドロップダウンボックスがあります(データベースにこれらが必要です)。電子メールを送信するときに数値の代わりに州の名前を取得する方法はありますか?

私のHTML:

<Select name="State" id="State" style="width:40px;" >
  <option value="17"></option>
  <option value="18">Alabama</option>
  <option value="19">Alaska</option>
  <option value="20">American Samoa</option>
  <option value="21">Arizona</option>
  <option value="22">Arkansas</option>
  <option value="15">California</option>
  <option value="6">Canada</option>
  <option value="11">Colorado</option>
  <option value="23">Connecticut</option>
  <option value="24">Delaware</option>
  <option value="25">District Of Columbia</option>
  <option value="26">Federated States Of Micronesia</option>
  <option value="7">Florida</option>
  <option value="27">Georgia</option>
  <option value="28">Guam</option>
  <option value="29">Hawaii</option>
  <option value="30">Idaho</option>
  <option value="8">Illinois</option>
  <option value="14">Indiana</option>
  <option value="31">Iowa</option>
  <option value="32">Kansas</option>
  <option value="33">Kentucky</option>
  <option value="34">Louisiana</option>
  <option value="35">Maine</option>
  <option value="36">Marshall Islands</option>
  <option value="37">Maryland</option>
  <option value="38">Massachusetts</option>
  <option value="1">Michigan</option>
  <option value="5">Minnesota</option>
  <option value="39">Mississippi</option>
  <option value="40">Missouri</option>
  <option value="41">Montana</option>
  <option value="42">Nebraska</option>
  <option value="43">Nevada</option>
  <option value="44">New Hampshire</option>
  <option value="12">New Jersey</option>
  <option value="45">New Mexico</option>
  <option value="46">New York</option>
  <option value="13">North Carolina</option>
  <option value="47">North Dakota</option>
  <option value="4">Ohio</option>
  <option value="48">Oklahoma</option>
  <option value="49">Oregon</option>
  <option value="10">Pennsylvania</option>
  <option value="50">Rhode Island</option>
  <option value="51">South Carolina</option>
  <option value="52">South Dakota</option>
  <option value="53">Tennessee</option>
  <option value="2">Texas</option>
  <option value="54">Utah</option>
  <option value="55">Vermont</option>
  <option value="3">Virginia</option>
  <option value="56">Washington</option>
  <option value="57">West Virginia</option>
  <option value="9">Wisconsin</option>
  <option value="58">Wyoming</option>
</Select>

現在のPHP$message行:

 "\nState: " . stripslashes($_POST["State"]) . 

私が受け取っているメールは、"State: 1"代わりに言っています"State: Michigan".

ありがとう。

4

3 に答える 3

1

値を削除すると、必要に応じて機能します。value 属性がない場合、実際の値が使用されます (option タグの間にあるものは何でも)

例えば

交換

<option value="8">Illinois</option>

これとともに

<option>Illinois</option>
于 2012-12-19T19:05:06.047 に答える
1

配列にすべての値を制御させます。この同じ配列を使用してドロップダウン オプションを表示し、同じ配列を使用して値を参照します。

<?php
//Place state array at the top of the file
$states = array(
  18 => "Alabama",
  19 => "Alaska",
  ...
);

//Generate select box
if(is_array($states)) {
  echo "<select name='state' id='state' style='width:40px'>";
  foreach($states as $id => $name) {
    echo "<option value='$id'>$name</option>";
  }
  echo "</select>";
}

//Form POSTed
if(is_array($_POST)) {
  //Send email message
  $email = "State: ".$states[$_POST['state']];
  //Do email sending or message displaying

  //Submit to datebase
  $query = "INSERT INTO table ('state') VALUES ('".mysqli_escape_string($_POST['state'])."')";
  //Do insert into mysql
}
?>
于 2012-12-19T21:33:06.393 に答える
0

属性は、valuePHP 側にポストされるものです。あなたの場合、各州には数値が割り当てられ、それがサーバーに投稿されます。ドロップダウンを変更して、テキストと値が次のように同じになるようにするだけです。

<option value="Michigan">Michigan</option>
<option value="New York">New York</option>
...

掲載の際は、番号ではなくお名前を掲載いたします。あなたの可能性:

$_POST['state']

MichiganorNew Yorkなどを返すようになりました。

これを行う唯一の方法は、インデックスがオプションの数値で、配列の値が州名 (ミシガン、ニューヨークなど) である配列を PHP で作成することです。フロントエンド コードは変更されません。次に、数値を受け取り、それをこの配列に対してマップする必要があります。

お役に立てれば。

于 2012-12-19T19:12:56.067 に答える