บทความ

การสร้างฟอร์มค้นหา และให้แสดงผลการค้นหาในหน้าเดียวกัน ด้วย PHP

รูปภาพ
เมื่อครั้งที่แล้ว พูดถึงเรื่อง การใช้ javascript สร้างฟอร์มอัตโนมัติ แล้วส่งค่าไปยัง PHP  คราวนี้จะเป็นการนำค่าที่ส่งมาตรวจสอบ และถ้าถูกต้องให้แสดงช่องสำหรับให้พิมพ์คำค้นหา และให้แสดงผลการค้นหาในหน้าเดียวกัน ในตัวอย่างนี้ ไม่ได้แสดงวิธีการค้นหาคำในฐานข้อมูล แต่แสดงคำค้นหาเท่านั้น การค้นหาในฐานข้อมูลเป็นเรื่องพื้นฐานที่ควรรู้อีกเรื่องหนึ่ง โค้ด PHP การตรวจสอบคำ การแสดงฟอร์มการค้นหา และแสดงผลในหน้าเดียวกัน <?php  if ($isPwdOK == ""){ $thisPwd = $_POST["myText"];  } if($thisPwd == "นฤมล" || $isPwdOK == "yes"){  echo "<H2>ยินดีต้อนรับ คุณ$thisPwd</H2>";  ?> <h2>ค้นหา</h2>  <form name="search" method="post" action="<?=$PHP_SELF?>">  ข้อมูลที่ต้องการค้นหา: <input type="text" name="find" />  <input type="hidden" name="searching" value="yes" />  <input type="hidden" name="isPwdO

การใช้ javascript สร้างฟอร์มอัตโนมัติ แล้วส่งค่าไปยัง PHP

รูปภาพ
ถ้าต้องการคลิกปุ่ม แล้วให้เกิดฟอร์มรับค่าโดยอัตโนมัติ (on the fly) เพื่อส่งค่าไปยัง PHP จะทำอย่างไร หลักการ ใช้สร้างปุ่มที่มีลักษณะเป็น Button และเมื่อคลิกปุ่ม ให้ไปเรียกใช้งานฟังก์ชันที่ใช้ javascript สร้างแบบฟอร์ม และส่งข้อมูลไปยังไฟล์ PHP วิธีการ สร้างไฟล์ html ดังนี้ (ไฟล์ jsFormDemo.html) <HTML>  <HEAD>  <meta http-equiv="Content-Type" content="text/html; charset=tis-620"> <script language="javascript" type="text/javascript"> function displayForm(){  var d=document;  var test_div = document.getElementById('pwdForm');  document.getElementById('pwdForm').innerHTML="รหัสเข้าใช้งาน";  var f = test_div.appendChild(d.createElement('form'));  var i=d.createElement('input');  var i2=i.cloneNode(false);  var br=d.createElement('br');  f.action='adminPage.php';  f.method='POST';  f.name='f';  i.type='text';  i.name='

การส่งค่า Array ผ่านแบบฟอร์มของ PHP

รูปภาพ
โจทย์: ต้องการส่งรายชื่อบุคคลซึ่งเก็บอยู่ในตัวแปร Array ของ PHP โดยส่งผ่านฟอร์ม จะทำอย่างไร ตัวแปรที่มีรายชื่อบุคคลคือ  $nameArray = array("ประสงค์","ประสิทธิ์","ประสาท"); หลักการ นำค่าที่อยู่ใน Array ไปใส่ในลง form element โดยให้อยู่ในรูปของ PHP Array แล้วส่งออกไปยังไฟล์ PHP ที่รับค่า วิธีการ ไฟล์แบบฟอร์ม (ไฟล์ myform.php) <html><body> <form method="POST" action="showarray.php"> <?php $nameArray = array("ประสงค์","ประสิทธิ์","ประสาท"); foreach($nameArray as $names){ //นำค่าไปใส่ form element   echo '<input type="hidden" name="members[]" value="'. $names. '">'; } ?> คลิกเพื่อส่งข้อมูล<br> <input type="submit" value=" ส่ง "> </body></html> แสดงผล   ในกรณีที่เราสร้างแบบฟอร์มสำหรับกรอกข้อมูล ก็สามารถรับค่าเข้ามาเป็น Array และส่งออกได้ทันที เช่น (ไฟล์ myform.h

ชื่อตัวแปรของ PHP ที่ประกอบด้วย ข้อความและตัวแปร

รูปภาพ
ชื่อตัวแปรใน PHP สามารถกำหนดให้มีตัวแปร ร่วมกับข้อความได้ ทำให้มีความยืดหยุ่น และนำไปประยุกต์ใช้ได้ในหลายกรณี ทำให้การเขียนโค้ดสั้นเข้า และมีประสิทธิภาพมากขึ้น รูปแบบที่ใช้คือ  ${"ข้อความ" . $ชื่อตัวแปร} ตัวอย่าง  ${"stAns" . $i} แนวทางการใช้งาน โค้ดต่อไปนี้ ให้พิมพ์ค่าตัวแปรที่กำหนด ผลที่ได้คือ คำตอบข้อที่ 1 คือ 20 คำตอบข้อที่ 2 คือ 10 คำตอบข้อที่ 3 คือ 30 คำตอบข้อที่ 4 คือ 10 คำตอบข้อที่ 5 คือ 50 โค้ดต่อไปนี้ รับข้อมูลจากแบบทดสอบ และนำมาตรวจกับเฉลย พร้อมแสดงคะแนน

การเรียงข้อมูลหลายแผ่นงานพร้อมกัน

รูปภาพ
ใน Excel ถ้ามีการจัดเก็บข้อมูลโครงสร้างเหมือนกัน แต่แยกเก็บในหลายแผ่นงาน เช่น อาจจะแยกเป็นรายภูมิภาค รายร้านค้า รายแผนก หรือ อื่น ๆ เป็นต้น การเรียงข้อมูลในแต่ละแผ่นงาน จะทำได้ช้า โดยเฉพาะถ้ามีแผ่นงานจำนวนมาก ยิ่งจะช้ามาก เนื่องจากต้องทำทีละแผ่นงาน การเรียงข้อมูลหลายแผ่นงานพร้อมกัน ต้องใช้ VBA หรือ แมโคร ช่วย วิธีการเรียกใช้งาน แมโคร ให้ดูเรื่อง การคัดลอกข้อมูลจากหลายแผ่นงาน ของ Excel ข้อควรระวัง เมื่อเรียงข้อมูลแล้ว จะย้อนกลับเดิมไม่ได้ ดังนั้นก่อนเรียงข้อมูลควรคัดลอกข้อมูลเดิมไว้ก่อน หรือคัดลอกข้อมูลไปที่อื่น แล้วจึงทำการใช้แมโครนี้ Sub SortAllSheets() 'ปรับแก้ตามข้อมูลของท่าน Const firstColToSort = "A" ' คอลัมน์แรก Const lastColToSort = "C"   ' คอลัมน์สุดท้าย Const keyCol = "A" ' คอลัมน์ที่จะให้เรียงข้อมูล ' คอลัมน์ที่มีข้อมูลทุกแถว 'อาจจะใช้ keyCol ก็ได้ แต่ไม่จำเป็น Const testCol = "C" ' แถวเริ่มต้นข้อมูล (หัวตาราง) Const startFrom = 1 Dim anyWS As Worksheet Dim sortRange As Range Dim sor

การคัดลอกข้อมูลจากหลายแผ่นงาน ของ Excel

รูปภาพ
ถ้าต้องการรวมข้อมูลที่มีโครงสร้างเหมือนกัน ในหลาย ๆ แผ่นงาน นำมารวมไว้ในแผ่นงานเดียวกัน เพื่อจะได้เปรียบเทียบ หรือเรียงข้อมูลใหม่ จะทำอย่างไร เช่น ในกรณีที่ใช้ Excel เก็บข้อมูลการใช้จ่ายเงินงบประมาณโครงการหลายโครงการ ( แผ่นงาน Excel คุมงบประมาณโครงการ หลายโครงการ )  แยกเป็นโครงการละ Sheet ต่อมาต้องการนำข้อมูลทั้งหมดมารวมกัน และเรียงข้อมูลตามวันที่ จะทำอย่างไร สมมติว่า ต้องการรวมข้อมูลจาก 2 แผ่นงาน ข้างล่างนี้ ไว้ด้วยกันเป็นแผ่นงานเดียว ข้อมูลแผ่นงานที่ 1 ข้อมูลแผ่นงานที่ 2 วิธีที่สะดวกที่สุด คือการลากดำแล้ว คัดลอก และวาง จะสะดวกที่สุด แต่ถ้ามี เป็นสิบ ๆ แผ่นงาน ไม่น่าจะสะดวกแน่ ใช้ Macro ข้างล่างนี้ จัดการนำข้อมูลทั้งหมดมารวมกัน ดูจะสะดวกกว่ามาก Sub Combine()     Dim J As Integer     On Error Resume Next     Sheets(1).Select     Worksheets.Add ' เพิ่ม Sheet เพื่อยังคงรักษาข้อมูลเดิมไว้ทั้งหมด     Sheets(1).Name = "รวมข้อมูลทั้งหมด"     ' คัดลอกส่วนหัวตารางส่วนบน ถ้าข้อมูลอยู่ในตำแหน่งอื่น ให้เปลี่ยนตามข้อมูลที่มี     Sheets(2).Activ

สูตรสำหรับเริ่มนับใหม่ เมื่อขึ้นรายการใหม่ ของ Excel

รูปภาพ
ในกรณีที่มีรายการหลายรายการ และต้องการเริ่มต้น 1 ใหม่ ในทุก ๆ รายการ จะทำอย่างไร จากตัวอย่างข้างล่าง ต้องการเขียนสูตรให้เริ่มต้นที่ 1 ที่รายการ ดินสอ ปากกา และสมุด หลักการ ใช้การเปรียบเทียบว่า ถ้าเซลล์ปัจจุบัน เหมือนกับเซลล์ก่อนหน้านั้น ให้เอา 1 บวกกับเลขลำดับก่อนหน้านั้น แต่ถ้าไม่เหมือน ก็ให้เริ่ม 1 ใหม่ วิธีการ ที่เซลล์ A2 ให้พิมพ์สูตร ดังนี้ =IF(B2=B1,A1+1,1) กด Ctrl + Enter (เพื่อให้ประมวลผลและยังคงเลือกอยู่ที่เซลล์ A2 เหมือนเดิม) ดับเบิ้ลคลิกที่ปุ่มเติมข้อมูล (Fill Handle) จะได้รายการดังภาพ สูตรนี้มีประโยชน์ ในกรณีที่มีหลาย ๆ รายการ เพิ่มขึ้นเรื่อย ๆ ให้เรียงข้อมูลก่อน แล้วจึงจัดลำดับ จะได้รายการชนิดเดียวกัน อยู่ด้วยกัน และมีหมายเลขกำกับ ถ้ามีการจัดลำดับในแต่ละรายการด้วย จะทำให้เห็นภาพรวมของแต่ละรายการได้ดีขึ้น หรือ ถ้าต้องการดูเฉพาะ รายการที่ 1-3 ก็สามารถใช้การกรอง กรองข้อมูลได้ ก็จะทำให้ดูข้อมูลง่ายขึ้น