ในฉบับก่อนหน้าผู้เขียนแนะนำสามัญสำนึกพื้นฐานของ VBScript ซึ่งเป็นหนึ่งในภาษาสคริปต์ ASP ในกระบวนการเขียนโปรแกรม ASP เพื่อช่วยให้คุณมีความเข้าใจที่ดีขึ้นเกี่ยวกับ VBScript
หลังจากเรียนรู้แนวคิดพื้นฐานของตัวแปรค่าคงที่และกระบวนการของ VBScript ภาษาสคริปต์ปัญหานี้จะยังคงแนะนำฟังก์ชั่นและไวยากรณ์ของ VBScript ให้คุณ
ฟังก์ชั่นมีชื่อว่าบล็อกของรหัสเช่นขั้นตอน แต่พวกเขาแตกต่างกันมาก เราสามารถเข้าใจด้วยวิธีนี้ว่ากระบวนการเป็นเหมือนประโยคที่สมบูรณ์ในขณะที่ฟังก์ชั่นเป็นเหมือนคำ ตัวอย่างเช่นเมื่อคุณต้องการรับรูทสแควร์ของหมายเลขที่แน่นอนคุณเพียงแค่ส่งหมายเลขไปยังฟังก์ชัน SQR () ใน VBScript และฟังก์ชั่นนี้จะส่งคืนรูทสแควร์ของหมายเลขทันที ชอบ:a = sqr (9)
จากนั้น a = 3 ความเชี่ยวชาญในฟังก์ชั่นภาษาสคริปต์จะทำให้คุณสะดวกสบายในการเขียนโปรแกรม ASP นี่คือวิธีแก้ปัญหา ตอนนี้เรามาทบทวนการออกกำลังกายหลังคลาสนี้กันเถอะผู้เขียนกำลังใช้ ASP เพื่อสร้างระบบ BBS บนเว็บโดยหวังว่าจะเพิ่มคุณสมบัติพิเศษให้กับมันนั่นคือเมื่อผู้ใช้ใดเข้าสู่ BBS เขาสามารถดูข้อมูลที่เพิ่งเปิดตัวใหม่ทั้งหมดในเจ็ดวันที่ผ่านมา
หากคุณไม่คุ้นเคยกับ VBScript คุณจะไม่ทราบว่า VBScript นั้นมีฟังก์ชั่นวันที่เพื่อให้ได้ความแตกต่างหรือผลรวมระหว่างวันที่
Dateserial (ปี, เดือน, วัน)
หากคุณต้องการระบุวันที่ตัวอย่างเช่น: 10 พฤศจิกายน 1998 ช่วงค่าของแต่ละพารามิเตอร์ในฟังก์ชันวันที่ควรเป็นที่ยอมรับได้นั่นคือค่าของวันควรอยู่ระหว่าง 1 ถึง 31 และค่าของเดือน ควรอยู่ระหว่าง 1 ถึง 31 และมูลค่าของเดือนควรอยู่ระหว่าง 1 ถึง 12 อย่างไรก็ตามสามารถระบุวันที่สัมพัทธ์สำหรับแต่ละพารามิเตอร์โดยใช้นิพจน์ตัวเลขที่แสดงถึงจำนวนปีเดือนและวันก่อนหรือหลังวันที่แน่นอน ตัวอย่างต่อไปนี้ใช้นิพจน์ตัวเลขแทนวันที่แน่นอน ที่นี่ฟังก์ชั่น dateserial ส่งคืนวันที่ยี่สิบปี (1990-20) และสองเดือน (11-2) และวันอื่น (10-1) ก่อนวันที่ 10 พฤศจิกายน 1998: 9 กันยายน 1978 ขั้นตอนมีดังนี้:datep = dateserial (1998-20, 11-2, 10-1)
สำหรับพารามิเตอร์ปีหากช่วงมูลค่าตั้งแต่ 0 ถึง 99 มันจะถูกตีความว่าเป็น 1900 ถึง 1999 สำหรับพารามิเตอร์ปีนอกช่วงนี้จะใช้ตัวเลขสี่หลักเพื่อเป็นตัวแทนของปี (ตัวอย่างเช่น 1800) เมื่อค่าของพารามิเตอร์ใด ๆ เกินช่วงที่ยอมรับได้มันจะถูกนำไปยังหน่วยที่มีขนาดใหญ่ขึ้นถัดไป ตัวอย่างเช่นหากมีการระบุ 35 วันจำนวนวันจะถูกตีความเป็นหนึ่งเดือนบวกจำนวนวันพิเศษซึ่งขึ้นอยู่กับปีและเดือน แต่ข้อผิดพลาดเกิดขึ้นหากค่าพารามิเตอร์เกินช่วง -32,768 ถึง 32,767 หรือหากวันที่ที่ระบุโดยพารามิเตอร์สามตัว (ไม่ว่าโดยตรงหรือผ่านนิพจน์) อยู่นอกช่วงวันที่ที่ยอมรับได้หลังจากที่เราเข้าใจและเชี่ยวชาญการใช้งานของฟังก์ชั่นวันที่มาดูคำถามที่ผู้เขียนมอบหมายและทุกอย่างจะได้รับการแก้ไข ด้านล่างนี้ฉันจะเผยแพร่ส่วนนี้ของรหัสในโปรแกรมดังนี้: ปัญหา = dateserial (ปี (วันที่), เดือน (วันที่), วัน (วันที่) -7)
item = dateValue (itemp)
sql = เลือก * จากข้อความที่ข้อความสร้างขึ้นระหว่าง #& วันที่ & #และ #& itemp & #
ที่นี่เราเข้ามาติดต่อกับชุดฟังก์ชั่นปีเดือนและวันซึ่งใช้เพื่อรับวันที่ วันที่เป็นค่าคงที่แสดงถึงวันที่ของวันนี้ในขณะที่ฟังก์ชัน datevalue เป็นตัวแปรที่แปลงตัวแปรสตริงเป็นรูปแบบวันที่ ในบรรทัดที่สามของโปรแกรมนี้เราเข้ามาติดต่อกับคำสั่ง SQL แบบสอบถามมาตรฐานก่อน
SELECT เป็นคำสั่ง SQL Database Query เงื่อนไขการสืบค้นคือการดึงระเบียนที่ตรงตามเงื่อนไขในฐานข้อมูล ในการเชื่อมต่อประโยคทั้งหมดและเข้าใจ: สอบถามบันทึกทั้งหมดในฐานข้อมูลชื่อข้อความและเก็บบันทึกทั้งหมดภายในเจ็ดวันก่อนวันนี้และก่อนวันนี้ในตัวแปร SQL อาจเป็นเพราะคุณได้สัมผัสกับคำสั่ง SQL เป็นครั้งแรกคุณไม่สามารถเข้าใจฟังก์ชั่นของมันได้อย่างเต็มที่ในขณะที่ แต่ไม่ต้องกังวลว่าในบทในอนาคตผู้เขียนจะใช้ปัญหาพิเศษเพื่อแนะนำการใช้ SQL ให้คุณ
ผ่านการเรียนรู้ข้างต้นทุกคนควรเข้าใจบทบาทของฟังก์ชั่นในโปรแกรม ถัดไปลองดูที่ไวยากรณ์พื้นฐานของ VBScript
เพื่อนที่รู้ว่าภาษาการเขียนโปรแกรมต้องรู้ว่าข้อความที่ควบคุมการไหลของโปรแกรมในโปรแกรมสามารถแบ่งออกเป็นคำสั่งแบบมีเงื่อนไขและคำสั่งลูป
เลือกคำสั่งเคส
IF ... จากนั้น ... คำสั่งอื่นใช้เพื่อคำนวณว่าเงื่อนไขเป็นจริงหรือเท็จและเพื่อระบุคำสั่งที่จะเรียกใช้ตามผลการคำนวณ โดยทั่วไปแล้วเงื่อนไขคือนิพจน์ที่เปรียบเทียบค่าหรือตัวแปรที่ใช้โดยใช้ตัวดำเนินการเปรียบเทียบและถ้า ... แล้ว ... คำสั่งอื่นสามารถซ้อนกันได้ตามต้องการ
มาสร้างไฟล์ตัวอย่างสองไฟล์: if1.asp และ if2.asp
ทิ้งคำสั่งต่อไปนี้ลงใน Notepad และบันทึกเป็น if1.asp (หมายเหตุ: โปรดลบพื้นที่หลังจาก <ในโปรแกรม) <html>
<head>
<title> if1.asp </title>
</head> <body bgcolor =#ffffff>
<form action = if2.asp method = get>
ชื่อแรกของคุณ <ชื่ออินพุต = firstName maxLength = 20> <p>
นามสกุลของคุณ <name input = lastName maxLength = 20> <p>
<ประเภทอินพุต = ส่ง> <อินพุตประเภท = รีเซ็ต>
</form>
</body>
</html>
ทิ้งคำสั่งต่อไปนี้ลงในแผ่นจดบันทึกและบันทึกเป็น if2.asp <html>
<head>
<title> ifrespond.asp < /title>
</head>
< % fname = request.QueryString (FIRSTNAME)
lname = request.QueryString (นามสกุล)
ถ้า fname = George และ lname = Washington ดังนั้น %>
สวัสดีคุณต้องเป็นประธานาธิบดีคนแรก!
< % อื่น %>
สวัสดี! ยินดีที่ได้รู้จัก
< %end ถ้า %>
</body>
</html>
ASP1.ASP สร้างกล่องป้อนข้อความที่ต้องการให้ผู้ใช้ป้อนนามสกุลของเขาหรือเธอ
ASP2.ASP คือการใช้คำสั่ง IF เพื่อพิจารณาว่าชื่อที่ผู้ใช้ป้อนคือ George Washington และให้ข้อเสนอแนะที่สอดคล้องกันหรือไม่ ที่นี่เราพบคำขอวัตถุในตัว ASP คอลเลกชัน QueryString ดึงค่าของตัวแปรในสตริงการสืบค้น HTTP และสตริงการสืบค้น HTTP ถูกระบุโดยค่าหลังจากเครื่องหมายคำถาม (?) ชอบ:
http: //localhost/if2.asp? firstName = George & LastName = Washington
สร้างสตริงชื่อตัวแปรด้วยค่า firstName = George & LastName = Washington ผู้เขียนวัตถุ ASP จะมุ่งเน้นไปที่บทความต่อไปนี้
การเสียรูปของ IF ... จากนั้น ... อื่น ๆ ช่วยให้คุณเลือกจากหลายเงื่อนไขเช่นเพิ่มประโยคอื่นเพื่อขยายฟังก์ชันการทำงานของ IF ... จากนั้น ... หลายเงื่อนไข
เราได้ขยายส่วนโปรแกรมของ asp2.asp ดังนี้: < %
fname = lcase (request.QueryString (FIRSTNAME))
lname = lcase (request.QueryString (นามสกุล))
ถ้า fname = George และ lname = Washington ดังนั้น %>
สวัสดีคุณต้องเป็นประธานาธิบดีคนแรก! <p>
< % elseif fname = Ronald และ lname = Reagan จากนั้น %>
สวัสดีคุณต้องเป็นประธานนักแสดง! <p>
< % elseif fname = jimmy และ lname = carter จากนั้น %>
สวัสดีคุณต้องเป็นประธานาธิบดีชาวนาถั่วลิสง! <p>
< % elseif fname = naoko หรือ fname = charles จากนั้น %>
สวัสดีชื่อของคุณทำให้ฉันนึกถึงใครบางคน แต่ฉันไม่แน่ใจว่าใคร! <p>
< % อื่น %>
สวัสดี! ยินดีที่ได้รู้จัก
< % end ถ้า %>
สามารถเพิ่มส่วนคำสั่งอื่น ๆ ให้มีหลายตัวเลือกได้ แต่การใช้คำสั่งอื่นหลายครั้งมักทำให้โปรแกรมยุ่งยากมาก วิธีที่ดีกว่าในการเลือกระหว่างหลายเงื่อนไขคือการใช้คำสั่ง Select Case
โครงสร้างเคสที่เลือกให้เป็นวิธีแก้ปัญหาสำหรับ IF ... จากนั้น ... โครงสร้างอื่น ๆ คุณสามารถเลือกและเรียกใช้หนึ่งในนั้นจากหลายบล็อกคำสั่ง คำสั่ง SELECT CASE ให้ฟังก์ชั่นที่คล้ายกันกับ IF ... จากนั้น ... คำสั่งอื่น แต่สามารถทำให้รหัสกระชับและอ่านง่ายขึ้น โครงสร้างกรณีเลือกใช้นิพจน์การทดสอบอย่างง่ายที่คำนวณได้เพียงครั้งเดียวที่จุดเริ่มต้น ผลลัพธ์ของนิพจน์ถูกนำมาเปรียบเทียบกับค่าของแต่ละกรณีในโครงสร้าง หากจับคู่ให้ดำเนินการบล็อกคำสั่งที่เกี่ยวข้องกับเคส
-
fname = lcase (request.QueryString (FIRSTNAME))
lname = lcase (request.QueryString (นามสกุล))
name = fname+lname
เลือกชื่อเคส
เคส Georgewashington
Response.write hi.you ต้องเป็นประธานาธิบดีคนแรก! <p>
กรณี Ronaldreagan
Response.write hi.you ต้องเป็นประธานนักแสดง! <p>
กรณี jimmycarter
Response.write hi.you ต้องเป็นประธานาธิบดีชาวนาถั่วลิสง! <p>
กรณี naokocharles
Response.write hi.y ของคุณทำให้ฉันนึกถึงใครบางคน แต่ฉันไม่แน่ใจว่าใคร! <p>
กรณีอื่น
Response.write สวัสดียินดีที่ได้รู้จัก
สิ้นสุดเลือก %>
โปรดทราบว่าโครงสร้างกรณีเลือกจะคำนวณหนึ่งนิพจน์หนึ่งที่จุดเริ่มต้นและเพียงครั้งเดียวในขณะที่ IF ... จากนั้น ... โครงสร้างอื่น ๆ จะคำนวณนิพจน์สำหรับแต่ละคำสั่งของแต่ละคำสั่งซึ่งอาจแตกต่างกันไป ดังนั้นโครงสร้างกรณีเลือกสามารถใช้แทน IF ... จากนั้น ... โครงสร้างอื่น ๆ ถ้านิพจน์ที่คำนวณโดยคำสั่งแต่ละคำสั่งเหมือนกัน คำสั่ง Select Case สามารถซ้อนกันได้และแต่ละเลเยอร์ของคำสั่ง Select Case ที่ซ้อนกันจะต้องมีคำสั่ง Select End ที่ตรงกัน
วิธีการข้างต้นของการใช้ฟังก์ชั่นและคำสั่งแบบมีเงื่อนไขของภาษาสคริปต์ VBScript ที่แนะนำให้คุณไม่สามารถมีรายละเอียดได้เนื่องจากความยาว ในกระบวนการพัฒนาแอปพลิเคชัน ASP ในชีวิตประจำวันผู้เขียนเองก็ค่อยๆตระหนักถึงความสำคัญของภาษาสคริปต์ แต่ยังเพิ่มประสิทธิภาพการดำเนินการและการทำงานของแอปพลิเคชัน ASP หากคุณต้องการทำสิ่งที่ดีคุณต้องฝึกฝนเครื่องมือของคุณก่อนดังนั้นผู้เขียนขอแนะนำให้คุณเชี่ยวชาญภาษาสคริปต์อย่างเชี่ยวชาญซึ่งจะช่วยพัฒนาโปรแกรม ASP ของคุณได้อย่างดีเยี่ยม เนื่องจากบทความนี้ไม่ได้เป็นบทช่วยสอน VBScript เราสามารถใช้พื้นที่เล็ก ๆ เพื่อแนะนำความรู้พื้นฐาน VBScript โดยย่อ จำเป็นต้องไปที่ VBScript หากคุณมีคำถามใด ๆ หลังจากอ่านบทความนี้โปรดส่งอีเมลถึงฉันในเวลา