29. maj 2008 - 22:30
Der er
6 kommentarer og 1 løsning
Insert med loop
Hej, Har nogle inputbokse som henter i en database med en loop funktion som virker fint. <%Do While Not Rs.EOF%> <input type="text" name="kptName" size="10" value="<%=rs("kptName")%>"> <%Rs.MoveNext Loop%> <...name"kptName"...> får en værdi fra DB feks. Fornavn, Efternavn etc. Nu til mit spm. Jeg vil nu gerne lave en insert med en loop (?) som så skriver til DB. Feks: Felt = "kptName" som blive sat til "Fornavn" med... ...Værdi - "Peter" Felt = "kptName" som blive sat til "Efternavn" med... ...Værdi - "Peter" Osv. Har haft dette spm på Eksperten tidligere men uden held med svar. Smider 100 points på spil og håber på mere held :-) Det er en Access DB jeg bruger. Kan poste min kode ved ønske. Mvh Rickie
Annonceindlæg fra Arctic Wolf
vil det ikke blive lidt nemmere hvis hvert formfelt fik hver deres name?
du skal give hvert formfelt unik navn <% a = 0 Do While Not Rs.EOF %> <input type="text" name="kptName_<%=a%>" size="10" value="<%=rs("kptName")%>"> <% a = a + 1 Rs.MoveNext Loop %><input type="hidden" name="antal" value="<%=a%>"> der hvor du så indsætter laver du så et loop antal = request("antal") for aa = 0 to int(antal) response.write request("kptName_"&aa) & "<br>" next 'jeg udskriver det bare her du kan selv sætte det i databasen
Tak for det! Lige det jeg skal bruge - tusind tak! :-) Udskriften af kptName virker perfekt, men jeg har lidt problemer med Inserten. Her er min kode: <%ElseIf Request.QueryString("Department") = Department AND Request.QueryString("DateChoice") = DateChoice Then%> <table border="0" cellspacing="5" cellpadding="2" widht="940" height="65"> <tr> <td width="235" height="65" class="Chk"><div class="DB1ChkText1">1</div><div class="DB1ChkText2">Vælg afdeling</div><div class="DB1Chk"></div><div class="BoxNumber1"><!-- #Include File="DBDepartment.asp" --></div></td> <td width="235" height="65" class="Chk"><div class="DB2ChkText1">2</div><div class="DB2ChkText2">Vælg afdeling</div><div class="DB2Chk"></div><div class="BoxNumber2"><!-- #Include File="DBDate.asp" --></div></td> <td width="235" height="65" class="Act"><div class="DB3ChkText1">3</div><div class="DB3Act"></div></td> <td width="235" height="65" class="Act"><div class="DB4ChkText1">4</div><div class="DB4Act"></div></td> </tr> </table> <Form method="post" action="index.asp?Department=<%=(Department)%>&KPI=Add"> <%SQL = "SELECT * FROM tblKPIType WHERE depDepartment = '"&Request.QueryString("Department")&"'" Set RecSet = Connect.Execute(SQL)%> <table border="0" cellspacing="0" cellpadding="0" width="483" height="600" class="DivLeftMain BorderOrange"> <tr> <td width="200" height="30" valign="top" class="FontColorRed"><p><b><%=(Department)%></b></p></td> <td width="283" height="30" valign="top"><p></p></td> </tr> <tr> <td width="200" height="30" valign="top"><p>Valgt dato:</p></td> <td width="283" height="30" valign="top"><p><input type="text" name="Date" size="12" value="<%=(DateChoice)%>"></p></td> </tr> <% a = 0 Do While Not RecSet.EOF %> <tr> <td width="200" height="30" valign="top"><p><%=RecSet("kptNameShow")%></p></td> <td width="283" height="30" valign="top"><p><input type="text" name="kptName_<%=a%>" size="12" value=""></p></td> </tr> <% a = a + 1 RecSet.MoveNext Loop %> <tr> <td width="483" valign="top" colspan="2"><p><input type="submit" value="Gem"> <input type="reset" value="Afbryd"><input type="hidden" name="antal" value="<%=a%>"></p></td> </tr> </table </form> <%End if%> <%If Request.QueryString("Department") = Department AND Request.QueryString("KPI") = "Add" Then antal = request("antal") for aa = 0 to int(antal) SQL = "INSERT INTO tblKPI (kpiDate, depDepartment, kptName) VALUES('" & Request.Form("Date") & "', '"&(Department)&"', '" & Request.Form("kptName_"&aa) & "')" response.write request("kptName_"&aa) & "<br>" next Response.Write "KPI er registreret for <b>" & (Department) & "</b>" End if%>
Hov havde lige glemt att connecte til DB men det er rettet nu Set RecSet = Connect.Execute(SQL) ...virker dog stadig ikke.
hvad er dette - <Form method="post" action="index.asp?Department=<%=(Department)%>&KPI=Add"> skal der ikke stå <Form method="post" action="index.asp?Department=Department&KPI=Add"> og så i denne linie If Request.QueryString("Department") = "Department" AND Request.QueryString("KPI") = "Add" Then Response.Write "KPI er registreret for <b>" & Request.QueryString("Department") & "</b>"
Har fået det til at virke - perfekt! Mange tak for hjælpen! Her har du dine velfortjente points :-) antal = request("antal") for aa = 0 to int(antal) SQL = "INSERT INTO tblKPI (kpiDate, depDepartment, kptName, kptValue) VALUES('" & Request.Form("Date") & "', '"&(Department)&"', '" & Request.Form("kptName_"&aa) & "', '" & Request.Form("kptValue_"&aa) & "')" Set RecSet = Connect.Execute(SQL) next response.write request("kptName_"&aa) & "<br>"
super - og takker - god weekend
Kurser inden for grundlæggende programmering