Ví dụ tác vụ dưới đây sử dụng ajax trong vòng lặp
Mình sẽ sử dụng axios cho các request bất đồng bộ mà quen gọi là ajax vậy code của nó ra sao, ngay sau đây là code tham khảo
Chúng ta dùng for để lặp vòng lặp, trước tên function anh chị cần async và trước axios anh chị cần xài await
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
async sendToAPI(){ this.sendToAPIText = '<i class="fa fa-spinner fa-spin"></i> Gửi API' for (const item of this.selection) { const data = this.jsonToFormData({ action: 'sendToAPI', stocksItem: this.list[item] }) this.list[item].status = 1 await axios({ url: check_stocks_code_vars.ajax_url, method: 'post', data: data }).then((res) => { const response = res.data.data if(response.code === 200){ this.list[item].status = 2 }else{ this.list[item].status = 3 } console.log(response) }) .catch((err) => { console.log(err) }) } this.sendToAPIText = '<i class="fa fa-paper-plane" aria-hidden="true" ></i> Gửi API' this.NOTIFY("Đã gửi xong tất cả link đến API!",1) } |
còn jsonToFormData thực chất la function tạo dữ liệu form thôi mình chia sẽ luôn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
buildFormData(formData, data, parentKey) { if (data && typeof data === 'object' && !(data instanceof Date) && !(data instanceof File)) { Object.keys(data).forEach(key => { this.buildFormData(formData, data[key], parentKey ? `${parentKey}[${key}]` : key); }); } else { const value = data == null ? '' : data; formData.append(parentKey, value); } }, jsonToFormData(data) { const formData = new FormData(); this.buildFormData(formData, data); return formData; } |
còn check_stocks_code_vars.ajax_url chính là url ajax của wordpress được định nghĩa trong
1 2 3 4 5 6 7 |
wp_localize_script( 'check-stocks-code-init', 'check_stocks_code_vars', array( 'ajax_url' => admin_url( 'admin-ajax.php', 'relative' ), 'files_url' => CHECKSTOCKSCODE_FILES_URL ) ); |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress