Trong Drupal 7, khách hàng muốn thêm một nút vào user_profile_form. Vì vậy, trong mô-đun tùy chỉnh của mình, tôi tạo nút và lệnh gọi lại đi kèm với nó. Nhưng trong khi nút xuất hiện trên biểu mẫu, tôi không thấy bằng chứng nào về việc gọi lại đang được kích hoạt.
function member_form_alter(&$form, &$form_state, $form_id) {
nếu ($form_id == "user_profile_form") {
$form['send_reset'] = mảng(
'#type' => 'nút',
'#prefix' => "<div id='reset-div'>",
'#suffix' => "</div>",
'#value' => "Đặt lại thành viên",
'#ajax' => [
'gọi lại' => 'thành viên_reset_user',
'trình bao bọc' => 'đặt lại div',
'sự kiện' => 'gửi', // nhấp chuột, v.v.
],
'#trọng lượng' => -150,
'#attributes' => mảng(
'id' => mảng ('đặt lại-hủy')
),
);
}
hàm member_reset_user($form, &$form_state) {
chết();
cố gắng {
my_user_function():
cơ quan giám sát ('thành viên', 'thiết lập lại người dùng', WATCHDOG_NOTICE);
}
bắt (Ngoại lệ $e) {
cơ quan giám sát ('thành viên', 'đặt lại không thành công', WATCHDOG_ERROR);
}
trả về biểu mẫu $;
}
Html do Drupal tạo đề xuất chức năng gửi.
<div id="reset-div"><input id="reset-cancel" type="submit" name="op" value="Reset member" class="form-submit"></div>
Vì tôi không tạo các phần tử biểu mẫu mới trong lệnh gọi lại của mình mà chỉ phát hành một chức năng tùy chỉnh, nên tôi không thể biết mình đang làm gì sai. Tôi đã xem xét điều này quá lâu.