text_field_with_auto_complete

ที่จริงช่วงนี้ทำโปรแจคเกี่ยวกัน ruby on rails เยอะมากๆ บอกได้ว่าหมกหมุ่นเลยละเลยได้เอาอะไรที่ลองและนำเอาไปใช้ในโปรแจคจริงๆ มาถ่ายทอดสู่ผู้ที่กำลังสนใจอยู่โดยหวังให้ท่านเป็นผู้พัฒนาเว็บด้วย ruby on rails เหมือนกัน สำหรับวันนี้มาแนะนำการใช้ text field with auto complete ซึ่งเป็น plugins สำหรับอะไรดูตามชื่อคงจะรู้อยู่นะครับ
โดยชื่อ plugins คือ rails-auto_complete โดยหากใครต้องการเขียนตรงไปตรงมาตาม plugins ของเขาก็สามารถอ่านเอาได้ทั่วไปครับส่วนของผมเอาเป็นว่าไม่ใช้แบบเขาต้องการ ละกันเนื่องจากสิ่งที่ต้องการแตกต่างออกไปนิดหน่อย เริ่มต้นด้วยการโหลด plugins มาก่อนเลยครับ http://github.com/rails/auto_complete/tree/master เมื่อโหลดมาแล้วลองเล่นดูครับหากว่าต้องการแบบที่ผมอธิบายลองมาดูครับ

1
<%= text_field_with_auto_complete :txaction, :customer_code, { :size => 15 }, { :url => formatted_findjs_customers_path(:js), :method => :get, :with=>"'code='+element.value" } %>

สำหรับโค้ดตัวนี้เป็นการเรียก action=> ajax_customer_info สำหรับการประมวลผลครับ และส่ง parameter คือค่าใน field txaction_customer_code ครับ โดยกำหนดตรง :with=>”‘code=’+element.value” ส่วนถัดไปอยู่ใน controller ครับ

1
2
3
def findjs
    @customer = Customer.find(:all, :conditions => ['code LIKE ?', "%#{params[:code]}%"]) if params[:code]
end

จะเป็นการค้นหารหัสลูกค้านั้นทั้งหมดไปโชว์ใน field customer_code ครับ

text_field_with_auto_complete-demo1