Score:0

html แบบฟอร์มภายในบล็อก

ธง eg

ฉันมีแบบฟอร์มภายในบล็อกแบบกำหนดเองใน drupal 8 และฉันรู้ว่านี่ไม่ใช่วิธีที่ถูกต้องในการเขียนแบบฟอร์มภายในบล็อก แต่มีคนเขียนมันขึ้นมา และฉันกำลังพยายามแก้ไขโดยไม่เปลี่ยนวิธีการ ในการกลับมาของ สร้างฟังก์ชั่นสาธารณะ () เขาแสดง html ของแบบฟอร์มภายในมาร์กอัป

 อาร์เรย์ส่งคืน (
      '#markup' => '<แบบฟอร์ม>
// เรามีอินพุตมากมายที่นี่
// จากนั้นในตอนท้าย:       
 <ประเภทอินพุต="ซ่อน" ชื่อ="form_id" ค่า="country_language_form">
  <div class="yellow"><a class="btn button button--primary js-form-submit form-submit" id="edit-submit--2">'.t("ส่ง").'< /a></div>
</form>',

ฉันสงสัยว่ารหัสนี้ทำงานอย่างไร (มีการส่งแบบฟอร์มจริง) เมื่อผู้ใช้ไม่เปิดเผยตัวตนและใช้งานไม่ได้ (คลิกที่ส่งไม่ได้ทำอะไรเลย) เมื่อผู้ใช้เข้าสู่ระบบในฐานะผู้ดูแลระบบ

Kevin avatar
in flag
จริง ๆ แล้วคุณควรเขียนมันด้วย form api และเรียกสิ่งนั้นจากบล็อก
Score:3
ธง de

การเดาครั้งแรกของฉันน่าจะเป็นการกำหนดเป้าหมายที่ไม่ถูกต้องของปุ่มส่งเมื่อผู้ใช้เข้าสู่ระบบ (โปรดทราบว่า Drupal เพิ่มองค์ประกอบจำนวนมากใน DOM เมื่อเข้าสู่ระบบ)

ฉันขอแนะนำให้คุณใช้วิธีการที่ถูกต้องและสร้างแบบฟอร์มของคุณด้วย API ของแบบฟอร์ม รหัสการสร้างบล็อกของคุณจะมีลักษณะดังนี้:

  สร้างฟังก์ชั่นสาธารณะ () {
    $form = \Drupal::formBuilder()->getForm('Drupal\your_module_name\Form\YourForm');
    $build['content'] = $แบบฟอร์ม;
    ส่งคืน $build;
  }

และรหัสที่เกี่ยวข้องกับแบบฟอร์มทั้งหมดของคุณจะอยู่ในไฟล์ YourForm.php

Mira chalak avatar
eg flag
ขอบคุณค่ะ!!

โพสต์คำตอบ

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