Score:2

ปัญหาเกี่ยวกับเว็บฟอร์มเดียวกันที่เพิ่มหลายครั้งในหน้าเดียว

ธง th

ปัญหา

ฉันมีโหนดบทความที่เปิดใช้งานตัวสร้างเค้าโครงสำหรับผู้เขียนเนื้อหา

ฉันมีเว็บฟอร์ม สมัครรับจดหมายข่าว เมื่อเปิดใช้งานอาแจ็กซ์

ฉันเพิ่มเว็บฟอร์มการสมัครรับจดหมายข่าวไปยังโหนดสองครั้ง ดังนั้นจึงมีการเพิ่มเว็บฟอร์มเดียวกัน 2 รายการในโหนด

เมื่อฉันส่งแบบฟอร์มที่สอง ข้อความยืนยันจะปรากฏในเว็บฟอร์มแรก

ที่คาดหวัง

ข้อความยืนยันควรปรากฏในเว็บฟอร์มที่สอง

สิ่งที่ฉันพยายาม

ฉันพยายามเปลี่ยน id โดยใช้

ฟังก์ชัน MY_MODULE_form_alter(&$form, FormStateInterface $form_state, $form_id) {
    ถ้า (isset($form['#webform_id'])) {
      $counter = _MY_MODULE_generate_webform_unique_id($form['#webform_id']);

      ถ้า ($เคาน์เตอร์ !== 0) {
        $new_id = $form_id '_' . $เคาน์เตอร์;
        $form['#form_id'] = $new_id;
        $form['#attributes']['id'] = $new_id;
        $form['#form_wrapper_id'] = $form['#form_wrapper_id'] '--' . $เคาน์เตอร์;

        $content_wrapper = $form['#form_wrapper_id'] '-เนื้อหา--' . $เคาน์เตอร์;
        $wrapper_id = $form['#form_wrapper_id'] '--' . $เคาน์เตอร์;
        $prefix = '<span id="'. $content_wrapper .'"></span>'
          '<div id="' . $wrapper_id . '" class="webform-ajax-form-wrapper" data-effect="fade" data-progress-type="throbber">';
        $form['#prefix'] = $prefix;
      }
    }
}


ฟังก์ชัน _MY_MODULE_generate_webform_unique_id($webform_id) {
  $static_var = &drupal_static(__FUNCTION__ . ':' . $webform_id);
  ถ้า (!isset($static_var)) {
    // สร้างเนื้อหาของตัวแปรคงที่
    $static_var = 0;
  }
  อื่น {
    $static_var += 1;
  }

  ส่งคืน $static_var;
}

ฉันสามารถเปลี่ยนรหัสแบบฟอร์มได้ แต่ข้อความยืนยันยังคงแสดงอยู่ในเว็บฟอร์มแรก

ฉันเห็นที่คล้ายกันที่นี่ https://drupal.stackexchange.com/a/272176/26797 แต่สำหรับรูปแบบที่กำหนดเอง ไม่แน่ใจว่าจะนำไปใช้กับเว็บฟอร์มได้อย่างไร

มีข้อผิดพลาดที่ฉันทำหรือวิธีการอื่น ๆ หรือไม่?

ขอขอบคุณล่วงหน้า.

แก้ไข

สำหรับวิธีแก้ปัญหาอย่างรวดเร็ว ขณะนี้ฉันเปลี่ยนรูปแบบทั้งหมดเพื่อแสดงในกล่องโต้ตอบโมดอลของ Drupal ดังนั้นแทนที่จะมีแบบฟอร์มปรากฏในหน้า ฉันใส่ลิงก์และผู้ใช้คลิกลิงก์เพื่อเปิดแบบฟอร์ม ไม่แน่ใจว่านี่เป็นข้อบกพร่องในเว็บฟอร์มหรือรหัสที่กำหนดเองของฉันกำลังยุ่งกับสิ่งต่างๆ ฉันจะต้องลองสิ่งนี้ในวานิลลา Drupal ในภายหลัง

sonfd avatar
in flag
ฉันลงคะแนนให้ปิดคำถามนี้เพราะควรแก้ไขใน[คิวปัญหาของโมดูลเว็บฟอร์ม](https://www.drupal.org/project/issues/webform?categories=All)บน drupal.org
sonfd avatar
in flag
วิธีแก้ไขอาจเป็นการกำหนดค่าเว็บฟอร์มใหม่เพื่อให้มีโอกาสแสดงข้อความยืนยัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา