【问题标题】:submit country by ISO code - html form通过 ISO 代码提交国家 - html 表单
【发布时间】:2016-06-23 19:16:40
【问题描述】:

因此,我想提供一份所有国家/地区的列表,供用户从表单中选择。我从这个站点找到了一个非常好的 html 格式的list of countries。该站点通过将完整的国家/地区名称列为 html 字符串来实现我的任务,但表单实际上将其 ISO 代码发送到服务器。这很好,但是在阅读提交的值时,有人会如何解决显示完整国家/地区名称的问题?

您认为最好将国家/地区值作为 ISO 值提交,还是应该只提交国家/地区的全名?所有网站似乎都在做较早的选择,但这对我来说似乎很麻烦。有人可以对这个问题提出一些想法,解释为什么首先使用 ISO 代码,以及如果使用了他们的 ISO,如何将它们解码回国家名称?谢谢你

【问题讨论】:

  • 你可以创建一个 javascript 引用数组...这就是我要做的。
  • 但是为什么要使用 ISO 代码而不是原始国家名称呢?人们为什么要这样做?
  • @alboudi,我认为这比你想象的更常见。与保存整个国家/地区名称相比,需要使用短代码的原因有很多。一方面,数据库空间。
  • 为了更简单,我只发送您需要的确切数据,无论是 ISO 值还是完整的国家/地区名称。显然,您发送和存储的数据越少越好。

标签: html forms


【解决方案1】:

As per my comment... The idea is, when the select changes, it calls the JS function.在那里,您设置了一个数组,其中的键与选择的值匹配,以及您希望它显示的内容。因此,您只需将该代码传递给数组即可获取值。

<form>

<select onchange="showName()" id="country">
    <option value="AF">Afghanistan</option>
    <option value="AX">Åland Islands</option>
    <option value="AL">Albania</option>
    <option value="DZ">Algeria</option>
    <option value="AS">American Samoa</option>
    <option value="AD">Andorra</option>
    <option value="AO">Angola</option>
    <option value="AI">Anguilla</option>
    <option value="AQ">Antarctica</option>
    <option value="AG">Antigua and Barbuda</option>
    <option value="AR">Argentina</option>
    <option value="AM">Armenia</option>
    <option value="AW">Aruba</option>
    <option value="AU">Australia</option>
    <option value="AT">Austria</option>
    <option value="AZ">Azerbaijan</option>
    <option value="BS">Bahamas</option>
...
</select>
<div id="selResult">
selected: nothing
</div>
</form>

JS:

var myArray = {"AF": "Afghanistan", "AX": "Åland Islands", "AL": "Albania"};
function showName(){
  selectRes = myArray[document.getElementById("country").value];
  document.getElementById("selResult").innerHTML = selectRes;
}

您必须创建完整的列表。但这就是如何让它发挥作用的基本思路。

这个here fiddle 拥有这一切,再加上另一种利用引用数组的方法。

对于它的价值,如果你打算经常使用它,你应该考虑在你的数据库中创建一个引用表,而不是在 JS 中到处乱搞。

【讨论】:

  • 感谢您向我展示了这个的 JS 实现。如果您能回答我的问题的第二部分,我也将不胜感激。为什么有人首先要使用 ISO 代码?这样做的理由是什么?
  • 有很多原因。其中最起码的是代码是通用的。国家的拼写,也许不是。数据库空间。更多字符意味着更多数据。此外,当需要稍后组织输出时,2 个字符在桌子上占用的空间更少,并且保持一切统一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2015-02-22
相关资源
最近更新 更多