Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

Đăng Ký

Bạn phải điền đầy đủ thông tin đăng ký!

  

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

    Quản trị viên

    avatar

    Bài viết : 89

    Tài sản : 275

    Uy tín : 7

    #1

     on 21.08.15 13:11 

    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
    You cannot reply to topics in this forum