รหัสสำหรับ asp query xml ไม่รีเฟรชเพจ วิธีการนำไปใช้ของแบบสอบถามจะเป็นดังนี้:
<html>
<หัว>
<title>วิธีการค้นหาโดยไม่ต้องรีเฟรชเพจ</title>
<meta http-equiv=เนื้อหาประเภทเนื้อหา=ข้อความ/html;
</หัว>
<ภาษาสคริปต์=จาวาสคริปต์>
<!--การเริ่มต้น โหลดข้อมูลใน data island ลงในกล่องรายการ-->
ฟังก์ชั่นโหลดอินเซล()
-
var Employeeid,employeelastname; //เก็บรหัสพนักงานและชื่อพนักงานตามลำดับ
root=document.all.xmlemployees.childNodes.item(0); //ส่งคืนองค์ประกอบแรก--employee
สำหรับ(i=0;i<root.childNodes.length;i++){
getnode=root.childNodes(i); //รับโหนดย่อยของพนักงาน
Employeeid=root.childNodes(i).getAttribute(emid);//รับ ID พนักงาน
สำหรับ(j=0;j<getnode.childNodes.length;j++){
Employeeinf=getnode.childNodes(j).nodeName;
ถ้า(employeeinf==นามสกุล){
Employeelastname=getnode.childNodes(j).text; //รับชื่อพนักงาน
-
-
//เขียนรหัสพนักงานและนามสกุลพนักงานที่ได้รับลงในตัวเลือก
ถ้า(รหัสพนักงาน!= && นามสกุลพนักงาน!=){
option1=document.createElement(ตัวเลือก);
option1.text=นามสกุลพนักงาน;
option1.value=รหัสพนักงาน;
รายชื่อพนักงาน. เพิ่ม (ตัวเลือก 1);
-
-
-
<!--การเริ่มต้น ดึงข้อมูลจาก data island และโหลดลงในกล่องรายการ-->
ฟังก์ชั่นค้นหาพนักงาน () {
var Employeelastname,employeeid; //จัดเก็บชื่อพนักงานและรหัสพนักงานตามลำดับ
นามสกุลพนักงาน=;
รหัสพนักงาน=;
findtext=window.findcontent.value; //รับเงื่อนไขการค้นหา
//ล้างกล่องรายการ
นับพนักงาน=พนักงานรายการ.ความยาว
สำหรับ(i=พนักงานนับ-1;i>=0;i--){
รายชื่อพนักงาน ลบ(i);
-
root=window.xmlemployees.childNodes(0);
สำหรับ(i=0;i<root.childNodes.length;i++){
getitem=root.childNodes(i); //รับโหนดย่อยของพนักงาน
Employeeid=root.childNodes(i).getAttribute(emid); //รับรหัสพนักงาน
สำหรับ(j=0;j<getitem.childNodes.length;j++){
ถ้า(getitem.childNodes(j).nodeName==นามสกุล){
Employee_temp=getitem.childNodes(j).ข้อความ;
if(employee_temp.indexOf(findtext)!=-1){/ // ค้นหารายการที่ตรงกัน
Employeelastname=employee_temp; //ค้นหาพนักงานที่มีชื่อตรงกัน
-
-
-
//เขียนข้อมูลพนักงานที่มีคุณสมบัติเหมาะสมลงในการคัดเลือก
ถ้า(รหัสพนักงาน!= && นามสกุลพนักงาน!=){
option1=document.createElement(ตัวเลือก);
option1.value=รหัสพนักงาน;
option1.text=นามสกุลพนักงาน;
window.employeelist.add (ตัวเลือก 1);
รหัสพนักงาน=;
นามสกุลพนักงาน=;
-
-
-
</สคริปต์>
<body bgcolor=#FFFFFF text=#000000 onload=javascript:loadinsel()>
<ความกว้างของตาราง=เส้นขอบ 80%=1>
<tr>
<td> กรุณากรอกเงื่อนไขการสืบค้น:
<ประเภทอินพุต=ชื่อข้อความ=findcontent>
<ประเภทอินพุต=ชื่อปุ่ม=ส่งค่า=ค้นหา onclick=javascript:findemployee()>
</td>
</tr>
<tr>
<td> ผลลัพธ์การค้นหา:
<เลือกชื่อ=รายชื่อพนักงาน>
</เลือก>
</td>
</tr>
</ตาราง>
<?xml version=การเข้ารหัส 1.0=gb2312?>
-
servername=wyb 'ชื่อเซิร์ฟเวอร์'
ผู้ใช้=sa 'ชื่อผู้ใช้
pw= 'รหัสผ่านผู้ใช้'
Databasename=northwind 'ชื่อฐานข้อมูล
ตั้งค่า conn=server.CreateObject (adodb.connection)
conn.Open DRIVER=SQL Server;SERVER=&servername&;UID=&user&;pwd=&pw&;DATABASE=&ชื่อฐานข้อมูล
ตั้งค่า rs = server.CreateObject (adodb.recordset)
sql=เลือกรหัสพนักงาน,นามสกุลจากพนักงานเรียงลำดับตามรหัสพนักงาน
rs.เปิด sql,conn%>
<!--นำข้อมูลในฐานข้อมูลไปไว้ที่ data island-->
<xml id=xmlemployees>
<พนักงาน>
<% ทำในขณะที่ไม่ใช่ rs.eof%>
<employeeitem emid=<%=rs(employeeid)%>>
<นามสกุล><%=rs(นามสกุล)%></นามสกุล>
</รายการพนักงาน>
<%rs.movenext%>
<%ลูป%>
</พนักงาน> </xml>
<%rs.ปิด
ตั้งค่า rs=nothing
-
</ร่างกาย>
</html>
ใช้ฟังก์ชัน instr() ของ ASP เพื่อตรวจสอบว่าสตริงมีสตริงที่ระบุหรือไม่
-
หรี่ wstr1,wstr2
wstr1=สวัสดีชาวโลก!
wstr2=o
ถ้า instr(wstr1,wstr2)>0 แล้ว
response.write(&wstr2& มีอยู่ใน &wstr1&)
อื่น
response.write(&wstr1& ไม่มี &wstr2&)
สิ้นสุดถ้า
-
-
ฟังก์ชัน InStr
-
InStr([เริ่มต้น, ]string1, string2[, เปรียบเทียบ])
【พารามิเตอร์】
ไวยากรณ์ของฟังก์ชัน InStr มีพารามิเตอร์ต่อไปนี้:
ส่วนหนึ่ง
แสดงให้เห็น
เริ่ม
พารามิเตอร์ทางเลือก สำหรับนิพจน์ตัวเลข ให้กำหนดจุดเริ่มต้นสำหรับการค้นหาแต่ละครั้ง หากละเว้น ให้เริ่มต้นที่ตำแหน่งอักขระตัวแรก หาก start มีค่า Null จะเกิดข้อผิดพลาด หากระบุพารามิเตอร์การเปรียบเทียบ ต้องมีพารามิเตอร์เริ่มต้นอยู่
สตริง1
พารามิเตอร์ที่จำเป็น ยอมรับนิพจน์สตริงเพื่อค้นหา
สตริง2
พารามิเตอร์ที่จำเป็น นิพจน์สตริงที่จะค้นหา
เปรียบเทียบ
พารามิเตอร์ทางเลือก ระบุการเปรียบเทียบสตริง หากการเปรียบเทียบเป็น Null จะเกิดข้อผิดพลาด หากละเว้นการเปรียบเทียบ การตั้งค่าตัวเลือกการเปรียบเทียบจะกำหนดประเภทของการเปรียบเทียบ
พารามิเตอร์ ?compare ถูกตั้งค่าเป็น:
คงที่
ค่า
【อธิบาย】
vbUseCompareOption
-1
ใช้การตั้งค่าคำสั่ง Option Compare เพื่อทำการเปรียบเทียบ
vbBinaryเปรียบเทียบ
0
ทำการเปรียบเทียบแบบไบนารี
vbTextเปรียบเทียบ
1
ทำการเปรียบเทียบข้อความ
vbฐานข้อมูลเปรียบเทียบ
2
สำหรับ Microsoft Access เท่านั้น ให้ทำการเปรียบเทียบตามข้อมูลในฐานข้อมูล
【มูลค่าคืน】
ส่งคืนค่า 0, 1, 2, -1 หรือ Null เป็นต้น
【ข้อยกเว้น/ข้อผิดพลาด】
ไม่มี
DescriptionInStr([start, ]string1, string2[, เปรียบเทียบ])
ส่งคืนสตริงที่ระบุครั้งแรกภายในสตริงอื่น ในสตริง string1 ให้ค้นหา string2 โดยเริ่มจากจุดเริ่มต้น เมื่อละเว้น start ให้ค้นหาจากจุดเริ่มต้นของ string1 เมื่อไม่พบ ค่าฟังก์ชันจะเป็น 0
ถ้า
อินสเตรรีเทิร์น
string1 มีความยาวเป็นศูนย์
0
string1 เป็น Null
โมฆะ
string2 มีความยาวเป็นศูนย์
เริ่ม
string2 เป็น Null
โมฆะ
ไม่พบ string2
0
ค้นหา string2 ใน string1
พบตำแหน่ง
เริ่มต้น > string2
0
【ตัวอย่าง】
ตัวอย่างนี้ใช้ฟังก์ชันInStrเพื่อค้นหาสตริงที่เกิดขึ้นครั้งแรกภายในสตริงอื่น
Dim SearchString, SearchChar, MyPos
SearchString =XXpXXpXXPXXP ' สตริงที่กำลังค้นหา
SearchChar = P ' เพื่อค้นหาสตริง P
' เริ่มต้นจากอักขระตัวที่สี่ ค้นหาด้วยการเปรียบเทียบข้อความ ค่าที่ส่งคืนคือ 6 (p ตัวพิมพ์เล็ก)
' ตัวพิมพ์เล็ก p และตัวพิมพ์ใหญ่ P เหมือนกันภายใต้การเปรียบเทียบข้อความ
MyPos = Instr(4, SearchString, SearchChar, 1)
' เริ่มต้นจากอักขระตัวแรก ค้นหาโดยใช้การเปรียบเทียบแบบไบนารี ค่าที่ส่งกลับคือ 9 (ตัวพิมพ์ใหญ่ P)
' ตัวพิมพ์เล็ก p และตัวพิมพ์ใหญ่ P แตกต่างกันในการเปรียบเทียบไบนารี
MyPos = Instr(1, SearchString, SearchChar, 0)
'วิธีการเปรียบเทียบเริ่มต้นคือการเปรียบเทียบแบบไบนารี (สามารถละเว้นพารามิเตอร์สุดท้ายได้)
MyPos = Instr(SearchString, SearchChar) ' กลับ 9.
MyPos = Instr(1, SearchString, W) ' กลับ 0