⊗ppPmFmOFH 299 of 447 menu

การจัดการฟอร์มในไฟล์ PHP ไฟล์เดียว

ในบทเรียนที่แล้ว ฟอร์มของเราวางอยู่บนหนึ่งหน้า แต่ถูกส่งไปยังอีกหน้า ที่จริงแล้วนั่นไม่จำเป็น หากปล่อยให้แอตทริบิวต์ action ว่างไว้หรือเอามันออกไปเลย ฟอร์มก็จะถูกส่งมายังหน้าเดิมนี้

มันจะทำงานอย่างไร: ในการเข้าไปที่หน้าครั้งแรก เราจะกรอกข้อมูลลงในฟอร์มและกดปุ่ม หลังจากนั้นหน้าจะรีเฟรชและโค้ดของมันจะถูกดำเนินการอีกครั้ง แต่คราวนี้พร้อมกับข้อมูลจากฟอร์ม

มาดูตัวอย่างกัน สมมติว่าเรามีฟอร์มและโค้ดสำหรับจัดการมันในไฟล์เดียว:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

ในการเข้าไปที่หน้าครั้งแรก ฟังก์ชัน var_dump จะแสดงอาร์เรย์ว่าง แต่หลังจากส่งฟอร์มแล้ว มันจะแสดงข้อมูลจากฟอร์ม นั่นคือครั้งแรก $_GET จะว่าง แต่ครั้งที่สอง - จะมีข้อมูลจากฟอร์ม

นี่อาจนำไปสู่ปัญหา สมมติว่า เราจะป้อนตัวเลขลงในฟอร์มและต้องการแสดงผลรวมของตัวเลขเหล่านี้บนหน้าจอ:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

ในกรณีนี้ ในการเข้าไปที่หน้าครั้งแรก เราจะเห็นข้อผิดพลาดของ PHP ที่เกี่ยวข้องกับความจริงที่ว่าอาร์เรย์ $_GET ว่างเปล่า แต่เรากำลังอ้างอิงถึงองค์ประกอบของมัน

ตรงนี้ควรบอกว่า คุณอาจไม่เห็นข้อผิดพลาดในเบราว์เซอร์ ในกรณีนี้ ให้ตรวจสอบว่าคุณได้เปิดการแสดงข้อผิดพลาดของ PHP ไว้ และให้แน่ใจว่าคุณเป็นการเข้าไปที่หน้าครั้งแรกและไม่มีข้อมูลฟอร์มในแถบที่อยู่

มาแก้ไขปัญหากัน สำหรับสิ่งนี้ เราจะเพิ่มเงื่อนไขเพื่อตรวจสอบว่าฟอร์มถูกส่งหรือไม่

ตัวอย่างเช่น สามารถตรวจสอบ $_GET ว่ามีข้อมูลหรือไม่ หาก $_GET ไม่ว่าง - แสดงว่าฟอร์มถูกส่งแล้วและสามารถทำการบวกได้ มิฉะนั้น เรายังอยู่ในการเข้าไปที่หน้าครั้งแรกและจะไม่ทำการบวก เอาล่ะ นี่คือโค้ดที่แก้ไขแล้ว:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

ถามผู้ใช้เกี่ยวกับนามสกุล ชื่อ และชื่อกลาง หลังจากส่งฟอร์มแล้ว ให้แสดงข้อมูลที่ป้อนบนหน้าจอ

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ