Điểm:1

Gọi lại AJAX chỉ được kích hoạt một lần

lá cờ eg

tôi đang dùng hook_form_alter() móc để thêm một Áp dụng vào biểu mẫu chỉnh sửa nút.. Khi người dùng nhấp vào nút đó, lệnh gọi lại AJAX sẽ thay thế giá trị trường văn bản.

Nó hoạt động tốt ở lần đầu tiên, nhưng lần thứ hai nó không thay thế giá trị.

function course_form_node_items_edit_form_alter(&$form, FormStateInterface $form_state) {

  $form['áp dụng'] = mảng(
    '#type' => 'gửi',
    '#value' => t('Áp dụng'),
    '#cân nặng' => '38',
    '#executes_submit_callback' => SAI,
    '#limit_validation_errors' => mảng(),
    '#ajax' => mảng (
      'gọi lại' => 'button_test_callback',
      'trình bao bọc' => 'chỉnh sửa trường văn bản-đơn giản-0-giá trị',
    ),
  );
}
    
chức năng button_test_callback(&$form, FormStateInterface $form_state) {
  $item_id = $form['field_item_id']['widget'][0]['value']['#value'];
  $sql = "CHỌN tên_mục
          TỪ mục
          WHERE field_item_id = '". $item_id."'";
    
  $location = \Drupal::database()->query($sql)->fetchAssoc();
    
  $form['field_text_plain']['widget'][0]['value']['#value'] = $location;
 $form['field_text_plain']['widget']['0']['value']['#id'] = 'edit-field-text-plain-0-value';
  trả về $form['field_text_plain'];
}

Sau lần nhấp đầu tiên, form_text_plain ID thay đổi thành một số giá trị ngẫu nhiên, ví dụ chỉnh sửa-trường-văn-bản-thuần-0-giá-trị-xhfjwos. Có vẻ như đó là vấn đề.

Có cách nào để tránh form_text_plain ID thay đổi?

Jaypan avatar
lá cờ de
Tôi đoán ID trình bao bọc thay đổi khi nó được thay thế lần đầu tiên. Tuy nhiên, nó không được hiển thị ID trình bao bọc đó đến từ đâu, vì vậy đó là suy đoán.
vyshnavi avatar
lá cờ eg
@Jaypan bây giờ tôi có thể thay đổi id của trình bao bọc, nhưng có vẻ như vấn đề thực sự là cuộc gọi lại không nhận được thông tin nhập vào trường biểu mẫu người dùng được cập nhật khi người dùng nhập giá trị id mục lần thứ hai, có cách nào để nhận được điều đó không cập nhật giá trị trường biểu mẫu để gọi lại?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.