【问题标题】:how to handle select tag on php? I want to set option on form when submitted如何处理 php 上的选择标签?我想在提交时在表单上设置选项
【发布时间】:2021-05-30 07:46:14
【问题描述】:

这是代码

<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 forms


【解决方案1】:

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

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

这包括带有从循环产生的选项的选择标签。在循环中,如有必要,将检查并选择发布的国家/地区。用户输入将仅包含县代码injp,上面的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/>

【讨论】:

  • 先生,如果用户不选择国家,我如何添加错误/警告消息?假设默认选择是“选择国家”?我尝试在其他部分添加错误消息并将其发布在选择标签下方,但它不起作用。
猜你喜欢
  • 2021-12-26
  • 2015-08-07
  • 1970-01-01
  • 2016-12-27
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2017-01-30
相关资源
最近更新 更多