2014-07-24 3 views
1

두 페이지 (form.html & default.asp)가 있습니다. html 양식을 사용하여 데이터를 가져 와서 ASP 페이지에 표시

<form method="POST" action="default.asp" name="form1"> 
<td width="10"> 
<select name="Practice_ID" size="1" ID="Prac"> 
    <option value="0" <% if Prac_ID ="0" then%>All</option> 
    <option value="1" <% if Prac_ID ="1" then%>HCL</option> 
    <option value="2" <% if Prac_ID ="2" then%>Silverbeck</option> 
    <option value="3" <% if Prac_ID ="3" then%>TPF</option> 
<option value="4" <% if Prac_ID ="4" then%>Express</option> 
</select> 
</td> 

<p> Client Surname </p> 
<input type="text" name="clientsurname" value="" /> 
<tr> 
<td>&nbsp;</td> 
<td colspan="2"><input type="submit" name="Submit" value="Submit"></td> 
</tr> 
</form> 

그리고 ASP 페이지에서

내가 가진 :

<% 
dim prac_id 
prac_id=Request.Form("form1") 

If request("prac_id")<>"" then 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.open "claims","USERNAME","PASSWORD" 
set rs = Server.CreateObject("ADODB.recordset") 
rs.Open "SELECT Date_Passed, Agent_ID, Client_First_Name, Client_Surname, Main_Number, Claims_Status FROM Claim_Status WHERE Practice_ID = '"&prac_id&"'", conn 

%> 

<table border="1"> 

<tr><th>Date</th><th>Agent</th><th>Client First Name</th><th>Client Surname</th> <th>Client Number</th><th>Claim Status</th></tr> 
<%do until rs.EOF%> 
<tr> 
<%for each x in rs.Fields%> 
<td> 
<%Response.Write(x.value)%> 
</td> 
<%next%> 
</tr> 
<% 
rs.MoveNext 
loop 
%> 
</table> 
<% 
rs.close 
conn.close 
End If 
%> 

가 난 할 노력하고있어 사용자가 드롭 다운 메뉴에서 옵션을 선택 가지고있는 HTML 페이지에서 나는 다음과 같은 형태를 따른다 메뉴 및 성을 입력하고 ASP 페이지에서 결과를 반환합니다. (아직 성을 조회하지 않고 아직 드롭 다운 메뉴를 사용하여 결과를 가져 오지 못했습니다.) 현재 연습을 선택하고 제출하면 내게 제공됩니다. 빈 페이지 (오류 없음) SQL 서버에서 데이터를 가져옵니다 (데이터베이스는 'Claim'테이블이라고 불리며 'Claim_Status'라고하며 열은 WHE가 필요합니다. RE는 'Practice_ID'입니다).

감사의 뜻 - 감사합니다.

답변

0

현재이 문제

이 있습니다

dim prac_id 
prac_id = Request.Form("form1") 

요구가 될 :

dim prac_id 
prac_id = Request.Form("Practice_ID") 

Form1에 당신이 Practice_ID 원하는 위치에 양식의 이름을 이름이다 제출 된입니다 제출되는 드롭 다운의 내용

그리고 :

If request("prac_id")<>"" then 

가 있어야한다 : 값이 너무 페이지로 아무것도 인쇄하지 않습니다있다

If prac_id <> "" then 

요청 ("prac_id") 또한 확인 prac_id을 확인해야합니다

실제로 숫자입니다 모든 SQL 주입 시도를 방지하기 위해 내가 할 것이다 :

If prac_id <> "" And IsNumeric(prac_id) then 

2 부

이 희미한는 prac_id prac_id =으로 Request.Form ("Practice_ID")

변경하려면 다음

희미한 prac_id, client_surname prac_id =으로 Request.Form ("Practice_ID") client_surname =으로 Request.Form ("clientsurname")

그런 다음 SQL 문

rs.Open "SELECT Date_Passed, AGENT_ID, Client_First_Name, Client_Surnam inot이를 추가해야

RS : Claim_Status Practice_ID = FROM 전자, Main_Number, Claims_Status에

변경 코네티컷, " '"&는 & prac_id "'.'&이 &을 prac_id "AND Client_Surname LIKE'% '& client_surname &"%' ""Practice_ID =이 WHERE Claim_Status FROM Date_Passed, AGENT_ID, Client_First_Name, Client_Surname, Main_Number, Claims_Status 선택 " '이 어떤 기록을 반환합니다

CONN 열기 여기서 검색 문자열은 surnam ie에 포함됩니다. 스미스에 대한 검색은 정확히 일치 변화에 대한 스미스, 스미 및 jensmith

을 반환

Client_Surname LIKE '%'& client_surname & "% '&을"

Client_Surname ='

에 " client_surname & " '"

또는 i와 함께 검색 문자열로 시작하는 성을 반환하고 싶다면 이자형. 스미스에 대한 검색은

변화에 스미스와 스미 반환 :

은 INNER 봐 당신이 개 테이블을 결합 합류

Client_Surname LIKE ' "& client_surname &"%'를 "이름이 수 동일한 레코드 세트에 반환 될

+0

이 작업은 매우 효과적입니다! 나는 이것을 시도하고 구현하고자하는 다른 두 가지가 있습니다. 1 - 성을 찾고, 어디에서 성을 사용하여 찾을 것인가? 성은 드롭 다운 메뉴 다음에 양식의 두 번째 부분에 입력됩니다. col 'Client_Surname'이라는 이름의 열은 일치하는 이름을 찾을 수있는 위치입니다. 두 번째 열에 에이전트 ID 대신 에이전트 이름을 표시하는 중입니다 (에이전트 이름은 PI_Agents라는 다른 SQL_ 데이터베이스의 다른 테이블에 있습니다 (열은 Agent_ID 및 Agent_Name입니다.) 감사합니다. – davidn84

+0

감사합니다. 이 오류 메시지가 점점 : 문 /default.asp의 예상 끝 라인을 9 희미한 prac_id, client_surname prac_id =으로 Request.Form ("Practice_ID") client_surname =으로 Request.Form ("clientsurname") 그것은 가리키는 ' P '두 번째 prac_ID – davidn84

+0

괜찮습니다. 지금 성을 해독했습니다. 모든 레코드를 표시하는 쉬운 방법이 있습니까? 볼 수 있듯이 드롭 다운의 연습에 대해'모두 '옵션이 있지만 확실하지 않은 방법은 무엇입니까? 이 옵션을 선택하면 모든 레코드를 표시 할 수 있습니까? – davidn84

관련 문제