كود استعلام asp xml لا يقوم بتحديث الصفحة. طريقة تنفيذ الاستعلام هي كما يلي:
<أتش تي أم أل>
<الرأس>
<title>كيفية الاستعلام دون تحديث الصفحة</title>
<meta http-equiv=Content-Type content=text/html;
</الرأس>
<لغة البرنامج النصي=جافا سكريبت>
<!--التهيئة، قم بتحميل البيانات الموجودة في جزيرة البيانات إلى مربع القائمة-->
وظيفة التحميل ()
{
var memberid,employeeelastname; // قم بتخزين معرف الموظف واسم الموظف على التوالي
root=document.all.xmlemployees.childNodes.item(0); // إرجاع العنصر الأول - الموظف
for(i=0;i<root.childNodes.length;i++){
getnode=root.childNodes(i); // احصل على عقدة فرعية من empolyee
Staffid=root.childNodes(i).getAttribute(emid);//احصل على معرف الموظف
for(j=0;j<getnode.childNodes.length;j++){
userinf=getnode.childNodes(j).nodeName;
إذا (الموظف==الاسم الأخير){
Stafflastname=getnode.childNodes(j).text; // احصل على اسم الموظف
}
}
// اكتب معرف الموظف واسم العائلة للموظف الذي تم الحصول عليه في التحديد
إذا(employeeid!= && اسم الموظف الأخير!=){
option1=document.createElement(option);
option1.text=employeeelastname;
option1.value=employeeid;
joblist.add(option1);
}
}
}
<!--التهيئة، استرداد البيانات من جزيرة البيانات وتحميلها في مربع القائمة-->
وظيفة البحث عن موظف () {
var memberlastname,employeeid; // قم بتخزين اسم الموظف ومعرف الموظف على التوالي
اسم العائلة للموظف=;
معرف الموظف=;
findtext=window.findcontent.value; // احصل على شروط البحث
// امسح مربع القائمة
employeelist=employeelist.length
ل(i=employeecount-1;i>=0;i--){
joblist.remove(i);
}
root=window.xmlemployees.childNodes(0);
for(i=0;i<root.childNodes.length;i++){
getitem=root.childNodes(i); // احصل على عقدة فرعية من empolyee
jobid=root.childNodes(i).getAttribute(emid);
for(j=0;j<getitem.childNodes.length;j++){
إذا (getitem.childNodes(j).nodeName==lastname){
Staff_temp=getitem.childNodes(j).text;
if(employee_temp.indexOf(findtext)!=-1){ // ابحث عن العناصر المطابقة
Stafflastname=employee_temp; // ابحث عن الموظفين ذوي الأسماء المطابقة
}
}
}
// اكتب معلومات الموظف المؤهل في التحديد
إذا(employeeid!= && اسم الموظف الأخير!=){
option1=document.createElement(option);
option1.value=employeeid;
option1.text=employeeelastname;
window.employeelist.add(option1);
معرف الموظف=;
اسم العائلة للموظف=;
}
}
}
</script>
<body bgcolor=#FFFFFF text=#000000 onload=javascript:loadinsel()>
<عرض الجدول=80% حد=1>
<تر>
<td> الرجاء إدخال شروط الاستعلام:
<نوع الإدخال=اسم النص=العثور على المحتوى>
<نوع الإدخال=اسم الزر=إرسال القيمة=البحث عند النقر=javascript:findemployee()>
</TD>
</tr>
<تر>
نتائج الاستعلام <td>:
<اختر الاسم=قائمة الموظفين>
</حدد>
</TD>
</tr>
</الجدول>
<?xml version=1.0 encoding=gb2312?>
<%
اسم الخادم=wyb 'اسم الخادم
user=sa 'اسم المستخدم
pw= 'كلمة مرور المستخدم
اسم قاعدة البيانات = اسم قاعدة بيانات Northwind
تعيين conn=server.CreateObject(adodb.connection)
conn.Open DRIVER=SQL Server;SERVER=&servername&;UID=&user&;pwd=&pw&;DATABASE=&databasename
تعيين rs=server.CreateObject(adodb.recordset)
sql=اختر معرف الموظف والاسم الأخير من الموظفين حسب ترتيب معرف الموظف
rs.Open SQL، conn٪>
<!--ضع المعلومات الموجودة في قاعدة البيانات في جزيرة البيانات-->
<معرف xml=xmlemployees>
<الموظف>
<%افعل بينما لا rs.eof%>
<employeeitem emid=<%=rs(employeeid)%>>
<اسم العائلة><%=rs(اسم العائلة)%></اسم العائلة>
</employeeitem>
<%rs.movenext%>
<%حلقة%>
</الموظف> </xml>
<%rs.إغلاق
تعيين RS=لا شيء
%>
</الجسم>
</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 على المعلمات التالية:
جزء
يوضح
يبدأ
المعلمات الاختيارية. بالنسبة للتعبير الرقمي، قم بتعيين نقطة البداية لكل بحث. إذا تم حذفه، يبدأ من موضع الحرف الأول. إذا كانت البداية تحتوي على قيمة خالية، فسيحدث خطأ. إذا تم تحديد معلمة المقارنة، فيجب أن تكون معلمة البداية موجودة.
سلسلة1
المعلمات المطلوبة. يقبل تعبير سلسلة للبحث عنه.
سلسلة2
المعلمات المطلوبة. تعبير السلسلة المراد البحث عنه.
يقارن
المعلمات الاختيارية. تحديد مقارنات السلسلة. إذا كانت المقارنة فارغة، فسيحدث خطأ. إذا تم حذف المقارنة، فإن إعداد خيار المقارنة يحدد نوع المقارنة.
تم تعيين المعلمة ?compare على:
ثابت
قيمة
【يصف】
vbUseCompareOption
-1
استخدم إعداد عبارة مقارنة الخيار لإجراء مقارنة.
vbBinaryCompare
0
إجراء مقارنة ثنائية.
vbTextCompare
1
إجراء مقارنة نصية.
vbDatabaseCompare
2
بالنسبة لـ Microsoft Access فقط، يتم إجراء مقارنة بناءً على المعلومات الموجودة في قاعدة البيانات.
[قيمة الإرجاع]
إرجاع 0، 1، 2، -1 أو Null، إلخ.
【استثناء/خطأ】
لا أحد
الوصفInStr([start,]string1,string2[,compare])
إرجاع التواجد الأول لسلسلة محددة ضمن سلسلة أخرى. في السلسلة 1، ابحث عن السلسلة 2 بدءًا من البداية. عند حذف البداية، ابحث من بداية السلسلة 1. عندما لا يتم العثور عليها، تكون قيمة الدالة 0.
لو
InStrreturn
السلسلة 1 طولها صفر
0
السلسلة 1 فارغة
باطل
السلسلة 2 طولها صفر
يبدأ
السلسلة 2 فارغة
باطل
لم يتم العثور على السلسلة 2
0
ابحث عن السلسلة 2 في السلسلة 1
تم العثور على الموقع
ابدأ> السلسلة 2
0
【مثال】
يستخدم هذا المثال الدالة InStr للعثور على التواجد الأول لسلسلة داخل سلسلة أخرى.
خافت 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.