2010-02-08 185 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,但它的工作