Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我无法将选择框中的值保存到变量_Php_Html_Forms_Validation - Fatal编程技术网

Php 我无法将选择框中的值保存到变量

Php 我无法将选择框中的值保存到变量,php,html,forms,validation,Php,Html,Forms,Validation,目前,我有以下联系人表单验证代码,问题是当我按下提交按钮进行表单验证时,它只保存文本字段的值,而不保存我当前选择的“下拉列表”字段值。我希望它在表单出错时保存所有字段,而不是重置它们 我对选择框使用的方法与对文本字段使用的方法相同 对如何实现这一目标有何建议 PHP $error = ''; // error message $name = ''; // sender's name $email = ''; // sender's email address $subject

目前,我有以下联系人表单验证代码,问题是当我按下提交按钮进行表单验证时,它只保存文本字段的值,而不保存我当前选择的“下拉列表”字段值。我希望它在表单出错时保存所有字段,而不是重置它们

我对选择框使用的方法与对文本字段使用的方法相同

对如何实现这一目标有何建议

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>

您需要将
selected=“selected”
属性应用于选择选项,而不是选择输入本身

由于用户可能已经发布了表单,“选定”值将位于
$\u 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>

请选择&hellip;
>电传
这将选择用户以前发布的值。

不应该这样做

value="<?=$telefon;?>"
value=“”
但例如

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

$telefon = $_POST['telefon'];
为此:

if ($_POST['telefon']) {
  if (isset($_POST['telefon'])) {
    //echo '1 Row Inserted';
    $telefon = $_POST['telefon'];
  }
}

=$telefon应该是echo$telefon@tinyByte您可以像这样使用速记回音
(尽管需要打开
short_tags
ini设置),感谢您的快速回复。各位朋友,请更具体地说明我需要更改的内容;)=$telefon应该是echo$telefon,您的意思是表单代码应该是“echo$telefon”,而不是值=“?@KurtBertil使用
是一种简写方式,表示您目前拥有它的方式很好。这确实没有解释或回答任何问题。加上链接到a不会为你赢得任何+1'节目,我会这么做吗^ ^?我第一次使用这个网站;P@KurtBertil这就是你的想法