使用Web services和Ajax實現資料自動錄入

來源:互聯網
上載者:User

編程思想的一些背景知識

美國郵政管理局 (USPS) 提供了多個 Web services。這些 Web services 之一接受郵政區碼並返回相應的城市和州的名稱。在本文的應用程式範例中,您將使用此 CityStateLookupRequest 來省去使用者的一些輸入操作。此功能還為您的資料庫提供了更好的地址資料,因為它減少了鍵入錯誤的機會。

先決條件和假設情況

構思和建立 Ruby on Rails 的 David Heinemeier Hansson 確實是一位智多星!在 RoR 中,他實現了許多好的思想,這些思想使開發 Web 應用程式更加容易,就像我的一個朋友說的那樣“它使編程變得更加有趣了!”我認為,其他架構和編程範例將毫無疑問地支援這些思想。不過,本教程並不是介紹如何建立 RoR 應用程式。

本文的假設情況是您已經建立了一個 RoR 應用程式,該程式有一個地址的 HTML 輸入表單(例如 590 Madison Ave, New York, NY 10022)。此 Rails 應用程式還有一個名為 address 的模型和一個相應的資料庫表。而且,我們還假設您:

瞭解 Web 應用程式開發的一些基本設計原則。

已經建立了一個 RoR 應用程式。

瞭解 RoR 應用程式的以下基本部分:ActiveSupport、ActiveRecord、ActionView、ActionController 和 Migrations 等。

有一個配置用於 RoR 應用程式的資料庫(如 IBM® DB2® 或 MySQL)。

通過預見使用者的需求與使用者聯絡並知道節省他們時間的重要性。

表 1. 假設您有一個具有這些對象的 RoR 應用程式

Ruby on Rails 檔案 目錄 描述
edit.rhtml ../app/views/addressadmin 編輯地址的視圖
_form.rhtml ../app/views/addressadmin edit.rhtml 使用的片段
addressadmin_controller.rb ../app/controllers HTML 輸入表單調用的控制器
address.rb ../app/models ActiveRecord 對象
001_create_addresses.rb ../db/migrate 建立 Addresses 資料庫表的指令碼

解決方案概述

下表列出了完成此解決方案所涉及的步驟。(不要擔心,本文的其餘部分將逐一介紹這些步驟。)注意,片段 一詞是 Ruby on Rails 的一個術語。它是與 網頁瀏覽器中顯示的內容相關的一個可重用程式碼片段。大多數現代架構都包括某種類型的模板和用於動態組裝模板以產生 Web 頁的片段功能。片段為應用程式開發人員提供了切實的便利,並極大地協助他們減輕了開發負擔。RoR 命名規範是在片段前面加一個底線(如 _addressForm.rhtml)。

修改 _form.rhtml 片段以便在城市和州之前顯示郵政區碼。

添加一個片段 (_cityState.rhtml) 以顯示城市和州的輸入欄位。

修改 _form.rhtml 片段以“偵聽”郵政區碼欄位的更改,並向伺服器發出 Ajax 調用。

修改控制器以驗證郵政區碼(5 位元字)。如果無效,則向用戶端返回空的 Ajax 響應。

修改控制器以建立有效 XML 請求並發送到 USPS Web services 。

修改控制器以便從 USPS Web services 接收和解析 XML 響應。

修改 Ajax 響應,為 _cityState 片段填充 Web services 的值。

指出改進解決方案的一些方法,並通過電子郵件向作者發送您的建議。

圖 1. 解決方案概述

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.