09/10/2018, 23:50

Cần hỏi về thẻ select và database trong lập trình asp

Mình đang làm một trang web liên quan đến asp, và gặp vấn đề như sau:

Ví dụ:
Mình có 2 talbles như sau:
- table a(a1,a2,a3,a4) trong đó a1 và a2 là khóa chính.
- table b(b1,b2,b3,a1,a2)

Trong trang nhập liệu cho table b, minh muốn hiên thị cả thông tin bên table a.
Và dùng thẻ select để chọn dữ liệu có sẵn từ table a. Mình muốn sau khi chọn cột a1 và chọn cột a2 xong, thì các thông tin trên còn lại trên dòng khóa vừa chọn sẽ hiển thị ra -->(a3,a4).
Mình đã thử dùng javascrip kết hợp với asp (vbscript) để bắt sự kiện onlick trên thẻ select khi chọn cột a2. Nhưng vẫn không được.
Bro nào có cánh nào làm thì chỉ cho mình với
Cám ơn!
hmcpp viết 01:55 ngày 10/10/2018
Sao ko có ai trả lời vậy?
Viết sự kiện onlick or onchange cho thể select và lọc dữ liệu theo tham số trên thẻ vừa chọn??
levanvy83 viết 02:05 ngày 10/10/2018
Bạn có thể dùng ajax để chỉ load lại phần sẽ hiện ra (a3,a4).

Nếu ko dùng ajax thì phải load lại cả trang để asp nhận được giá trị a1 và a2 mà user đã chọn.

Bạn dùng javascript để nhận giá trị a1, a2 rồi load lại trang bằng cách document.location.href="index.asp?a1=txta1.value&a 2=txta2.value"; sau đó viết code asp để nhận a1, a2 này; dùng lệnh select để lấy ra a3, a4 rồi cập nhật vào chỗ cần hiển thị.

Tốt nhất là bạn nên dùng ajax vì cách load lại trang này nếu chạy trên server sẽ chậm và gây bất tiện cho người dùng.
hmcpp viết 01:54 ngày 10/10/2018
Cám ơn nhiều nha!
Vậy mình muốn dùng ajax phải làm như thế nào?
levanvy83 viết 02:04 ngày 10/10/2018
Bạn cần đọc qua sách và các ví dụ cơ bản của ajax, dùng ajax cho trường hợp này cũng đơn giản chứ ko phức tạp lắm. Chỉ cần dùng xmlHttpRequest gửi dữ liệu đi rồi đặt id cho phần cần cập nhật để load lại thôi.

Hiện nay mình ko có code nên ko thể post cho bạn được. Bạn cứ làm thử đi rồi có gì khó khăn thì post lên đây.
hmcpp viết 02:01 ngày 10/10/2018
Vậy mình muốn bắt sự kiện onlick khi chọn dữ liệu ở talbe b, rồi viết cái function để lấy dữ liệu kô được àh?
levanvy83 viết 02:03 ngày 10/10/2018
Nếu bạn dùng combo box thì có thể dựa trên sự kiện onchanged để viết function lấy dữ liệu người dùng đã chọn rồi reload lại trang để cập nhật dữ liệu.
hmcpp viết 01:53 ngày 10/10/2018
Bạn có thể viết một đoạn cod làm mẫu được không?
Giống như trang này nè http://asia.creative.com/support/downloads/
Mấy cái dữ liệu trong select lấy từ dâtbase theo như cái trước.
Cám ơn bạn trước nha!
levanvy83 viết 01:53 ngày 10/10/2018
Trang này lấy tất cả dữ liệu lên 1 lần, lưu lại rồi dùng javascript để hiển thị các cột còn lại khi được chọn. Cách này thì nhanh hơn ajax và load lại trang nhưng sẽ chậm khi load trang lần đầu nếu dữ liệu nhiều.

Bạn view source trang đó sẽ thấy được javascript của họ. Ngoài ra cũng có 1 số ví dụ khác đơn giản hơn nhiều:
http://www.javascriptbank.com/javasc...avascript.html
http://www.javascriptkit.com/script/...velcombo.shtml
http://www.dynamicdrive.com/dynamici...omboviewer.htm
http://www.javascriptkit.com/script/cut183.shtml <---Có lẽ đây là cái bạn cần tìm
http://www.javascriptkit.com/script/...plecombo.shtml <---Hoặc cái này cũng tương tự trang trên.
hmcpp viết 02:02 ngày 10/10/2018
Rất cám ơn levanvy đã quan tâm.
Mình đang thắc mắc là dữ liệu trong các select được lấy ra từ database. Bạn chỉ mình chỉ sử dụng javascript dữ liệu được gán trước dữ liệu cố định). Ở đây mình muốn dữ liệu được lấy ra từ database sql chẳng hạn.Giông như vậy nè:http://www.asp101.com/articles/hierarchy/index.asp
Bài liên quan
0