ASP クエリ XML のコードはページを更新しません。クエリの実装方法は次のとおりです。
<html>
<頭>
<title>ページを更新せずにクエリを実行する方法</title>
<meta http-equiv=コンテンツタイプ content=text/html;
</head>
<スクリプト言語=javascript>
<!--初期化、データアイランドのデータをリストボックスにロードします-->
関数loadinsel()
{
varemployeeid,employeelastname //従業員 ID と従業員名をそれぞれ格納します。
root=document.all.xmlemployees.childNodes.item(0) //最初の要素であるemployeeを返します。
for(i=0;i<root.childNodes.length;i++){
getnode=root.childNodes(i); //従業員の子ノードを取得します。
employeeid=root.childNodes(i).getAttribute(emid);//従業員IDを取得
for(j=0;j<getnode.childNodes.length;j++){
従業員inf=getnode.childNodes(j).nodeName;
if(従業員==姓){
employeelastname=getnode.childNodes(j).text; //従業員名を取得します。
}
}
//取得したemployeeidとemployeelastnameをselectに書き込みます
if(従業員ID!= &&従業員姓!=){
option1=document.createElement(オプション);
option1.text=従業員の姓;
オプション1.値=従業員ID;
従業員リスト.追加(オプション1);
}
}
}
<!--初期化、データアイランドからデータを取得し、リストボックスにロードします-->
関数 findemployee(){
varemployeelastname,employeeid //従業員名と従業員 ID をそれぞれ格納します。
従業員の姓=;
従業員ID=;
findtext=window.findcontent.value; //検索条件を取得します。
//リストボックスをクリアします
従業員数=従業員リスト.長さ
for(i=従業員数-1;i>=0;i--){
従業員リスト.削除(i);
}
root=window.xmlemployees.childNodes(0);
for(i=0;i<root.childNodes.length;i++){
getitem=root.childNodes(i); //従業員の子ノードを取得します。
employeeid=root.childNodes(i).getAttribute(emid); //従業員IDを取得します。
for(j=0;j<getitem.childNodes.length;j++){
if(getitem.childNodes(j).nodeName==lastname){
従業員_temp=getitem.childNodes(j).text;
if(employee_temp.indexOf(findtext)!=-1){ //一致する項目を検索
employeelastname=employee_temp; //名前が一致する従業員を検索します。
}
}
}
//資格のある従業員情報を select に書き込みます
if(従業員ID!= &&従業員姓!=){
option1=document.createElement(オプション);
オプション1.値=従業員ID;
option1.text=従業員の姓;
window.employeelist.add(オプション1);
従業員ID=;
従業員の姓=;
}
}
}
</script>
<body bgcolor=#FFFFFF text=#000000 onload=javascript:loadinsel()>
<テーブル幅=80% ボーダー=1>
<tr>
<td> クエリ条件を入力してください:
<入力タイプ=テキスト名=検索コンテンツ>
<input type=button name=Submit value=Find onclick=javascript:findemployee()>
</td>
</tr>
<tr>
<td> クエリ結果:
<名前=従業員リストを選択>
</選択>
</td>
</tr>
</テーブル>
<?xml バージョン=1.0 エンコーディング=gb2312?>
<%
servername=wyb 'サーバー名
user=sa 'ユーザー名
pw= 'ユーザーパスワード
データベース名=ノースウィンド 'データベース名
set conn=server.CreateObject(adodb.connection)
conn.Open DRIVER=SQL Server;SERVER=&servername&;UID=&user&;pwd=&pw&;DATABASE=&databasename
set rs=server.CreateObject(adodb.recordset)
sql=従業員 ID による従業員の順序から従業員 ID、姓を選択します
rs.SQLを開く,conn%>
<!--データベース内の情報をデータアイランドに配置します-->
<xml id=xmlemployees>
<従業員>
<%do ながら rs.eof%>
<employeeitem emid=<%=rs(employeeid)%>>
<姓><%=rs(姓)%></姓>
</従業員項目>
<%rs.movenext%>
<%ループ%>
</従業員> </xml>
<%rs.close
rs=何も設定しない
%>
</body>
</html>
ASP の instr() 関数を使用して、文字列に指定された文字列が含まれているかどうかを検出します。
<%
ディム wstr1、wstr2
wstr1=こんにちは、世界!
wstr2=o
if instr(wstr1,wstr2)>0 then
response.write(&wstr2& は &wstr1& に存在します)
それ以外
response.write(&wstr1& には &wstr2& は含まれません)
終了する場合
%>
-------------------
InStr関数
-------------------
InStr([開始, ]文字列1, 文字列2[, 比較])
【パラメータ】
InStr 関数の構文には次のパラメーターがあります。
一部
説明する
始める
オプションのパラメータ。数値式の場合、各検索の開始点を設定します。省略した場合は先頭文字位置から開始します。 start に Null が含まれる場合、エラーが発生します。比較パラメータが指定されている場合は、開始パラメータが存在する必要があります。
文字列1
必須パラメータ。検索する文字列式を受け入れます。
文字列2
必須パラメータ。検索する文字列式。
比較する
オプションのパラメータ。文字列の比較を指定します。 Compare が Null の場合、エラーが発生します。比較を省略した場合、オプション比較の設定によって比較のタイプが決まります。
?compare パラメータは次のように設定されます。
絶え間ない
価値
【説明する】
vbUseCompareオプション
-1
比較を実行するには、Option Compare ステートメント設定を使用します。
vbBinaryCompare
0
バイナリ比較を実行します。
vbTextCompare
1
テキスト比較を実行します。
vbデータベース比較
2
Microsoft Access の場合のみ、データベース内の情報に基づいて比較を実行します。
【戻り値】
0、1、2、-1、または Null などを返します。
【例外・エラー】
なし
descriptionInStr([開始, ]文字列1, 文字列2[, 比較])
別の文字列内で指定された文字列が最初に出現した文字列を返します。文字列string1の先頭からstring2を検索します。startを省略した場合はstring1の先頭から検索します。見つからない場合、関数の値は 0 になります。
もし
InStrreturn
string1 の長さはゼロです
0
文字列1はNULLです
ヌル
string2 の長さはゼロです
始める
string2 は Null です
ヌル
string2が見つかりません
0
string1 で string2 を検索します
場所が見つかりました
開始 > 文字列2
0
【例】
この例では、InStr 関数を使用して、別の文字列内で最初に出現する文字列を検索します。
Dim SearchString、SearchChar、MyPos
SearchString =XXpXXpXXPXXP ' 検索される文字列。
SearchChar = P ' 文字列 P を検索します。
' 4文字目から文字列比較で検索します。戻り値は 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 を返します。