[Tip] Một số cách dùng ajax trong forumotion

  Bài viết hay nhất1
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
});
Xem ví dụ: http://devs.forumvi.com/t1265-hoi-ap-hi-i-write-from-mexico?showpost=p8328

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
});
Xem ví dụ: http://devs.forumvi.com/t329-hoi-dap-cach-lam-nut-vote-khong-chuyen-trang?showpost=p2121

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
});
Xem ví dụ: http://devs.forumvi.com/t345-code-zzpoll-binh-chon-khong-chuyen-trang?showpost=p2159

Chú ý: Đối với 1, 2, 3, 4 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


Zzbaivong
  Bài viết hay nhất2
Tem + Phong Bì :3 Like đầu luôn!!
  Bài viết hay nhất3
Ví dụ cái reply, nếu muốn gửi được ở tất cả các topic và với mọi nội dung thì sao huynh?
  Bài viết hay nhất4
Đủ các thông số như hướng dẫn sẽ gửi được.
Trường hợp bị lỗi từ chối như topic bị khóa, nội dung < 3 ký tự... thì có thánh cũng chịu.
  Bài viết hay nhất5
Ý méo là:
Code:
$.post("/post", {
  mode: "reply",
  t: "<topic_id>",
  message: "<Nội_dung>",
  post: "Ok"
})
Code đòi phải có topic_id và Nội dung, nhưng méo muốn t ở mọi id còn message ở mọi nội dung ấy. Hay phải dùng thêm đoạn js nữa huynh hở
  Bài viết hay nhất6
Không hiểu hỏi cái gì?

Trước hết méo có phân biệt được đâu là topic id không? nó là số thứ tự topic, để phân biệt topic này với topic khác.
Ví dụ như topic này là 520, reply vào topic này thì phải xác định t là 520.
Nếu như đặt topic id bậy bạ, topic không tồn tại hoặc bị khóa thì reply vào đâu? ví dụ như t là 9999
Nội dung thì ghi gì cũng được, chỉ cần > 3 ký tự.
  Bài viết hay nhất7
tức là có thể cho gửi ở bất kì topic nào mình đang xem được không ấy huynh =="
  Bài viết hay nhất8
>:( đây là code mẫu, còn muốn làm thì phải tự mà lấy topic id bỏ vào chứ!
  Bài viết hay nhất9
Code:
.done(function(){
  // 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
});

cái đoạn .done() là sao huynh
Code:
.done(function(){
  alert("Úm xì bùa lỗi rồi");
  alert("Hết lỗi zồi hết lỗi zồi");
})

  Bài viết hay nhất10
Hỏi phát đoạn Edit profile
Code:
tid: $("#qjump input[name='tid']").val()
dùng làm gì vậy ạ :v
  Bài viết hay nhất11
Để lấy tid chứ làm gì :v
  Bài viết hay nhất12
Cho em hỏi là chèn code này trong css hả?
p/s: Vì để em chèn tất cả luôn
  Bài viết hay nhất13

@duythanh73 wrote:Cho em hỏi là chèn code này trong css hả?
p/s: Vì để em chèn tất cả luôn

Gist là 1 cấu trúc mã dùng để ứng dụng chứ không phải cứ thích thì chèn. Và nó là JQuery chứ có phải CSS đâu mà bỏ vào CSS -_-
  Bài viết hay nhất14

@KirigayaKazuto wrote:
@duythanh73 wrote:Cho em hỏi là chèn code này trong css hả?
p/s: Vì để em chèn tất cả luôn

Gist là 1 cấu trúc mã dùng để ứng dụng chứ không phải cứ thích thì chèn. Và nó là JQuery chứ có phải CSS đâu mà bỏ vào CSS -_-
Chứ chèn hay sử dụng nó ra sao/
  Bài viết hay nhất15
Trên #1 có link mẫu JS có sử dụng AJAX còn gì -_- http://www.devs.cf/t329-hoi-ap-cach-lam-nut-vote-khong-chuyen-trang?showpost=p2121
You cannot reply to topics in this forum