2010-02-08 184 views
2

我想要做下面的事情,使用PHP和jQuery的国家/城市/状态验证

https://www.careerbuilder.com/share/register.aspx?sc_cmp1=JS_LoginASPX_RegNow

步骤

  1. 从下拉列表中选择一个国家。
  2. 城市下拉列表将自动与选定国家的城市列表进行填充。
  3. 如果状态可用于该国家,则状态列表将与该国家的所有州列表可见。

然后我需要验证选定的城市,州和国家。

你有什么想法吗?

在此先感谢

+1

你到目前为止有什么? – Quentin 2010-02-08 10:37:02

+0

先付出一些努力。如果您有任何问题,请返回问题 – TFD 2010-02-08 10:50:00

+1

如果您这样做,请不要像您的示例链接那样重新加载页面......它真的很烦人,因为打字时会让页面重新加载,而您会失去焦点并输入(使用AJAX代替) – scunliffe 2010-05-12 00:28:12

回答

13

如果你想很容易让外国人进入的地址,然后只是提供一个文本字段,其中地址可以输入格式的文本。很少有国家使用州(或类似地区)作为地址的一部分,我不明白你为什么要提供城市下拉列表。德国城市列表(或邮寄地址中更正确,有效的地名)将包含约23,000个条目。您认为更简单,输入地址或尝试在这样的列表中找到地点名称_

0

我正面临类似的挑战。我不知道你的情况是否如此,但在我的情况下,我们需要确保进入的城市真的是现有的城市。在项目后期,我们希望能够收集世界上任何地方同一城市的条目。这些结果需要精确。 所以我们不能让人们进入费城和费城。而且我们也希望人们使用城市的英文名称,而不是使用他们自己的语言的名称。

我发现了一些国家,州和城市的公共数据库。例如:MaxMind。但它是大约3M城市的列表,我发现了另外一个超过6M的城市。我已经完全按照你描述的方式进行了设置。选择国家,然后通过AJAX呼叫获取城市,并填写下拉菜单。荷兰这样的国家需要2秒左右的时间,但中国或俄罗斯的装载量是不可接受的。 而且这些清单非常庞大,根本不是用户友好的。

所以我认为最好让人们在文本框中输入它们,当这些城市真的不匹配都不重要时。 我们现在正在查看Google Maps API来解决我们的问题。

+0

感谢阿贝尔您的不错建议。我非常接近解决方案。只要我完成了,我会在这里发布。再次感谢。 – 2010-02-08 21:52:44

0

这是一个非常标准的AJAX场景。事实上,你描述的确切问题可能是最常见的介绍性Ajax示例。你已经在你的问题中列出了PHP和jQuery标签;一起使用这些将使解决方案变得非常简单。

我的建议是用PHP查找jQuery Ajax示例。你几乎肯定会找到你正在寻找的东西。

1

我们所做的是使用ServiceObjects.com来验证地址。

因此,我们让用户在纯文本字段中输入他们的地址(或多或少),然后只需将地址详细信息发送到ServiceObjects.com,并使用webservice返回的规范化/更正地址。

这不是直接回答你的问题,但或许它提供了一种替代解决根本问题。

1

从下拉列表中选择一个国家。

我假设这是一个从数据库表填充的HTML SELECT

城市下拉列表将与城市选定的国家的 列表自动fillup 。

不要这样做。你想要的是一个jQuery Autocomplete,用户开始键入,然后从数据库中提取可能的条目。

如果状态 可用于该国当时的国家 名单将与该国的所有状态 列表中可见。

如果您正在进行邮寄地址验证,您只需要为少数国家/地区验证。处理它的一种常见方式是隐藏SELECT框,并且当用户选择需要显示省份的国家(例如澳大利亚)时,请执行此操作。

然后我需要 验证选定的城市,州和 国家。

请注意,州/省和国家是SELECT控制,所以他们不应该有一个无效的结果,并验证城市名称是不可能的。

-1

打印下拉与状态列表 使国家的名单ID获取或方法帖子ID, 使SQL城市名单表,并使用PHP,使调用它需要更多的时间,则表的jQuery,但它的工作