0

現時点では、次の連絡先フォーム検証コードがあります。問題は、フォーム検証のために送信ボタンを押すと、現在持っている「ドロップダウンリスト」フィールド値ではなく、テキストフィールドの値のみが保存されることです選ばれました。フォームにエラーが発生したときに、フィールドをリセットするのではなく、すべてのフィールドを保存したい。

テキストフィールドと同じ方法を選択ボックスに使用しています。

これを達成する方法について何か提案はありますか?

PHP

$error    = ''; // error message
$name     = ''; // sender's name
$email    = ''; // sender's email address
$subject  = ''; // subject
$message  = ''; // the message itself
$spamcheck = ''; // Spam check
$test = ''; // test
$telefon = ""; // telefon

if(isset($_POST['send']))
{
$name     = $_POST['name'];
$email    = $_POST['email'];
$subject  = $_POST['subject'];
$message  = $_POST['message'];
$spamcheck = $_POST['spamcheck'];
$test = $_POST['test'];
$telefon = $_POST['telefon'];
}

HTML

<input name="test" type="text" class="detail" id="test" value="<?=$test;?> />

<-- dropdownlist that isn't working --->

<select name="telefon" type="text" class="scroll" id="telefon" value="<?=$telefon;?>>
<option value="-"> </option>
<option value="Epost">E-post </option>
<option value="Telefon">Telefon </option>
</select>

デモ

4

3 に答える 3

1

選択入力自体ではなく、選択オプションselected="selected"に属性を適用する必要があります。

ユーザーはすでにフォームを投稿しているため、「選択された」値は になります$_POST['telefon']

これは少し面倒に見えますが、うまくいくはずです:

<select name="telefon" type="text" class="scroll" id="telefon">
  <option value="-"> Please Choose&hellip;</option>
  <option value="Epost"<?php echo ($telefon == 'Epost') ? ' selected="selected"' : ''; ?>>E-post</option>
  <option value="Telefon"<?php echo ($telefon == 'Telefon') ? ' selected="selected"' : ''; ?>>Telefon</option>
</select>

これにより、ユーザーが以前に投稿した値が選択されます。

于 2013-10-05T12:37:49.120 に答える
0

あなたの交換

$telefon = $_POST['telefon'];

これとともに:

if ($_POST['telefon']) {
  if (isset($_POST['telefon'])) {
    //echo '1 Row Inserted';
    $telefon = $_POST['telefon'];
  }
}
于 2013-10-05T12:46:19.537 に答える
-1

それはあってはならない

value="<?=$telefon;?>"

しかし、例えば

<option value="Epost" <? if($telefon = 'Epost') echo 'selected'; ?>>

http://www.w3schools.com/tags/att_option_selected.asp

于 2013-10-05T12:41:18.337 に答える