Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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上处理select标记?我想在提交时在表单上设置选项_Php_Forms - Fatal编程技术网

如何在php上处理select标记?我想在提交时在表单上设置选项

如何在php上处理select标记?我想在提交时在表单上设置选项,php,forms,Php,Forms,这是密码 <select class="country" name="country" id="country" > <option value="" disabled selected>Choose Country</option> <option value="in" >India</option>

这是密码

<select class="country" name="country" id="country" >
        <option value="" disabled selected>Choose Country</option>
        <option value="in" >India</option>
        <option value="jp" >Japan</option>
        </select><br/>

选择国家
印度
日本

我想在提交时在表单上设置用户选择的值。现在,当用户选择一个值时,当按下提交按钮时,它返回到“选择国家”。 我怎样才能在数据库中输入完整的国家名称?现在输入的值是“in”还是“jp”


谢谢您的帮助。

我建议的解决方案是将国家代码数组映射到国家名称。这将用于使用循环创建选项,查找完整的国家/地区名称并验证用户输入

PHP

$countries = array(
  'in' => 'India',
  'jp' => 'Japan',
);

$selectedCountryCode = '';

if($_SERVER['REQUEST_METHOD'] == 'POST'){
  $selectedCountryCode = isset($_POST['country']) ? $_POST['country'] : '';

  if(isset($countries[$selectedCountryCode])){
    $selectedCountryName = $countries[$selectedCountryCode];
    // insert $selectedCountryName
  } else {
    // validation error - country not found, do not insert
    $selectedCountryCode = ''; // reset because it was invalid
  }

}
HTML

这包括select标记和循环生成的选项。在循环中,如果需要,将选中已发布的国家/地区。用户输入只需在或jp中包含县代码
,上面的PHP会将其映射到全名以供插入

<select class="country" name="country" id="country" >
  <option value="" disabled>Choose Country</option>
  <?php foreach($countries as $code => $countryName): ?>
  <option value="<?php echo htmlspecialchars($code); ?>" <?php if($code == $selectedCountryCode){ echo 'selected'; } ?>><?php echo htmlspecialchars($countryName); ?></option>
  <?php endforeach; ?>
</select><br/>

选择国家
>


这是否回答了您的问题?PHP将获得所选选项中
值中的内容。如果需要另一个值(如全名),则将该值设置为包含全名。先生,如果用户未选择国家/地区,如何添加错误/警告消息?假设默认选择是“选择国家”?我尝试在else部分添加错误消息,并将其发布到select标记下面,但没有成功。