[TIPS] MỘT SỐ CÁCH DÙNG AJAX TRONG FORUMOTION

  Bài viết hay nhất1
HeavenBlue
|

1. Gửi bài viết mới (new topic)


Code:
$.post("/post", {
   mode: "newtopic",
   f: "<forum_id>",
   subject: "<Tiêu_đề>",
   message: "<Nội_dung>",
   post: "Ok"
}).done(function (data) {
   // Xử lý các lỗi từ chối như giới hạn thời gian, chưa đăng nhập, chuyên mục khóa...
   // Xử lý khi gửi thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});

2. Trả lời bài viết (reply)




Code:
$.post("/post", {
   mode: "reply",
   t: "<topic_id>",
   message: "<Nội_dung>",
   post: "Ok"
}).done(function (data) {
   // Xử lý các lỗi từ chối như có người vừa gửi trước đó, giới hạn thời gian, chưa đăng nhập, chủ đề khóa...
   // Xử lý khi gửi thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});

3. Gửi tin nhắn riêng (pm)




Code:
$.post("/privmsg", {
   mode: "post",
   subject: "<Tiêu_đề>",
   message: "<Nội_dung>",
   "username[]": "<Tên_người_nhận>",
   u: "user_id_người_nhận",
   folder: "inbox",
   post: "Ok"
}).done(function (data) {
   // Xử lý các lỗi từ chối như giới hạn thời gian, chưa đăng nhập, sai thông tin người nhận, cấm gửi thư...
   // Xử lý khi gửi thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});


4. Viết lên tường (wall)




Code:
$.post("/privmsg", {
   subject: "<Tiêu_đề>",
   message: "<Nội_dung>",
   username: "<Tên_người_nhận>",
   u: "user_id_người_nhận",
   mode: "post_profile",
   folder: "profile",
   post: "Ok"
}).done(function (data) {
   // Xử lý các lỗi từ chối như giới hạn thời gian, chưa đăng nhập, sai thông tin người nhận, cấm đăng tin...
   // Xử lý khi gửi thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});


5. Liên hệ (contact)


Code:
$.post("/contact", {
   subject: "<Tiêu_đề>",
   message: "<Nội_dung>",
   reg_key: "<Mã_captcha>", // Mã này người dùng nhập từ ảnh: <img src="/antirobot_pic.forum?a=1" alt="regkey" />
   action: "submit"
}).done(function (data) {
   // Xử lý các lỗi từ chối như cấm đăng liên kết, sai mã captcha, cấm liên hệ...
   // Xử lý khi gửi thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});


6. Tìm kiếm thành viên (search user)




Code:
$.get("/search?mode=searchuser&fieldname=username", {
   search_username: "<Từ_Khóa>",
   time: timestamp()
}).done(function (data) {
   // Kết quả tìm kiếm sẽ được liệt kê trong danh sách: $(data).find("#username_list")
   // Xử lý khi tìm kiếm thành công với các trường hợp không tìm thấy, tìm thấy 1 kết quả, tìm thấy nhiều kết quả
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});


7. Sửa thông tin cá nhân (edit profile)




Code:
$.post("/ajax_profile.forum?jsoncallback=?", {
   id: "<field_ID>",
   user: "<user_ID>",
   active: "1",
   content: '[["<field_name>","<Nội dung>"]]',
   tid: $("#qjump input[name='tid']").val()
}, {}, "json").done(function (data) {
   // Xử lý các lỗi từ chối như sai field ID, sai field name, chưa đăng nhập, cấm sửa field...
   // Xử lý khi gửi thành công, kết quả lấy từ: data["<field_ID>"]
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});

8. Bỏ phiếu (vote)




Code:
$.post("<Liên_kết_bỏ_phiếu>").done(function (data) {
   // Xử lý các lỗi từ chối như chưa đăng nhập, đã bỏ phiếu, cấm bỏ phiếu...
   // Xử lý khi bỏ phiếu thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});



9. Bình chọn (poll)


Code:
$.post("/post", {
   t: "<topic_id>",
   topic_id: "<topic_id>",
   "vote_id[]": "<vote_id>",
   mode: "vote",
   tid: $("#qjump input[name='tid']").val(),
   submit: "Ok"
}).done(function (data) {
   // Xử lý các lỗi từ chối như sai topic ID, sai vote id, chưa đăng nhập, cấm bình chọn...
   // Xử lý khi gửi thành công
}).fail(function () {
   // Xử lý khi lỗi do sever như rớt mạng, quá tải...
}).always(function () {
   // Xử lý khi kết thúc tiến trình
});

Chú ý: Đối với 1234 phải tắt chức năng chống ủy quyền, nếu không bạn sẽ cần phải bổ sung tham số auth[]
ACP >> QLTT >> Forum >> Security:
Unauthorize unofficial forms to post messages and private messages on the forum : No


Nguồn:


ZzBaivong


Tags: #jquery #tips #Ajax
Bạn không có quyền trả lời bài viết