2013-03-29 1 views
1

사용자에게 표시되는 큰 레코드 집합이 있습니다. 각 레코드에는 사용자가 레코드의 다양한 데이터를 편집 할 수있는 편집 버튼이 있습니다. 특정 레코드에는 다른 필드보다 많은 필드가 있으므로 편집 폼에는 다양한 이름과 필드 수가 있습니다. 편집 버튼을 클릭하면클래식 ASP - 알 수없는 번호와 필드 이름 제출?

예를 들어, 하나 개의 레코드는 다음을 생산할 것이다 :

<form id="frm1" name="frm1" method="post" action="changeJob.asp?jobNo=1101&jQueryID=1" target="_blank"> 
<input type='text' name='Qty13' value='8' size="3" maxlength="3"/> 
<input type="submit" name="btnFrm1" id="button" value="Submit" /> 
</form> 

그러나 다른 기록이 생성 것이다 :

위와
<form id="frm2" name="frm2" method="post" action="changeJob.asp?jobNo=1102&jQueryID=2" target="_blank"> 
<input type='text' name='Qty15' value='8' size="3" maxlength="3"/> 
<input type='text' name='Qty16' value='8' size="3" maxlength="3"/> 
<input type='text' name='Qty17' value='8' size="3" maxlength="3"/> 
<input type='text' name='Qty18' value='8' size="3" maxlength="3"/> 
<input type="submit" name="btnFrm2" id="button" value="Submit" /> 
</form> 

, 입력 필드에 할당된다 고유 한 이름 (예 : "Qty14")과 해당 양식의 이름은 "frm2"입니다. 사용자가 수량을 증가시킬 수있는 jQuery 플러스 및 마이너스 버튼이 있기 때문에 고유해야합니다.

changeJob.asp 고유 이름과 번호가있는 곳에서 제출할 필드를 어떻게 결정할 수 있습니까? 숨겨진 필드를 사용하여 양식 이름을 쉽게 얻을 수 있습니다. 모든지도가 가장 극명하게 될 것이다 :

답변

2

그냥 모든 형태의 수집을 반복하고 원하는 이름으로 시작하는 키를 찾습니다 :

Dim strSQL, curValue, blnFirst 
blnFirst = True 
strSQL = "Update MyTable Set " 
For Each key In Request.Form 
    If Left(key, 3)="Qty" Then 
     'prevent nasty hacking 
     If IsNumeric(Replace(key, "Qty", "")) Then 
      curValue = Request.Form(key) 
      If IsNumeric(curValue) Then 
       If Not(blnFirst) Then 
        strSQL = strSQL & ", " 
       End If 
       strSQL = strSQL & key & "=" & curValue 
       blnFirst = False 
      End If 
     End If 
    End If 
Next 
If blnFirst Then 
    'no values, show alert of some sort... 
Else 
    strSQL = strSQL & " Where [filter here]" 
    '... 
End If 

당신은보다 동적 인 접근 방식을 보여 그 두 ASP 페이지를 가지고이 zip 파일을 다운로드 할 수 있습니다

제출 된 값을 기반으로 동적 쿼리를 작성합니다.

각 값을 별도로 업데이트해야하는 경우 코드가 더 간단 해지고 사용자가 직접 변경할 수 있기를 바랍니다. :)

0

** SQL 업데이트를 수행 ** Frm1에는 에 다음

을 각 필드에 대해

:

내가 좋아하는 뭔가를 달성하기 위해 노력하고 나는 돕고 싶다. 당신에게 이미 알고있는 것을 말하고 싶지 않기 때문에 조금 더 많은 정보가 필요합니다. 새 양식 및/또는 이전 데이터를 편집하거나 새 레코드 만 편집 할 수있는 양식은 ... 양식을 채울 코드가 이미 있는지 말해 줄 수 있습니까?

또한 양식을 하나만 가지고 생각했지만 서버 측 코드 (ASP)에서 동적으로 입력 상자를 생성 했습니까? 이 경우에 하나 이상의 양식을 가지고 있기 때문에 (내가 뭔가를 놓치지 않는 한) 이는 ... 추천하지 않습니다. http://www.oceanmedia.net/files/hk_config.zip