webForumDet fria alternativet

Lägga till flera poster i databas

ASP

1 svar · 225 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hej! :e

Jag har följande kod som genererar ett formulär med dynamiskt antal fält beroende på vad man valt i selecten... (blev det otydligt?)

<form action="registerMiles.asp" method="get">
  <p>Antal f&auml;lt: 
   <select name="fields" class="listmeny" onChange="this.form.submit();">
          <% 
		for i = 1 to 10
			Response.Write "<option value=""" & i & """ "
			If cstr(i) = request("fields") then Response.Write "selected=""selected"""
			Response.Write ">" & i & "</option>" & vbCrLf
		next	
		%>
     </select>

  </form>
  <form action="" method="post" name="registerTravelForm" id="registerTravelForm">

  <p>Anv&auml;ndare:
    <input type="text" name="textfield" value="<% =Request.Cookies("sydostel")("User") %>">
  </p>
  <%
startNumber = 1
If request("fields") = "" then stopNumber = 1 Else stopnumber = request("fields")

For i = startNUmber to stopNumber

%>
  <p>Datum f&ouml;r resa: 
    <input name="travelDate" type="text" id="travelDate" size="10"> 
    Antal mil:
    <input name="miles" type="text" id="miles" size="10"> 
    Typ av resa: 
    <select name="travelType" id="travelType">
    </select> 
    Uppdragsnummer:
    <input name="taskNr" type="text" id="taskNr" size="15">
  </p>
<% Next %>
  <p>
    <input name="registrera" type="submit" id="registrera" value="Registrera">
  </p>

</form>

Hur gör jag för att göra en INSERT till databasen när antalet fält i formuläret kan variera... Får liksom inte till det....

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#2

:e

Sådär nu funkar det i a f tack vare följande trådar:

http://www.webforum.nu/showthread.php?s=&postid=47278#post47278
http://www.webforum.nu/showthread.php?s=&postid=47208#post47208

.....som tydligen jag själv har varit inblandad i.... hmmm :r , man glömmer mycket på 4 år (Borde vara att man lär sig mer....)

Nu ser det ut så här i a f:

<form action="registerMiles.asp" method="get">
  <p>Antal f&auml;lt: 
   <select name="fields" class="listmeny" onChange="this.form.submit();">
          <% 
		for i = 1 to 10
			Response.Write "<option value=""" & i & """ "
			If cstr(i) = request("fields") then Response.Write "selected=""selected"""
			Response.Write ">" & i & "</option>" & vbCrLf
		next	
		%>
    </select>

</form>
  <form action="../time/registerMiles2.asp" method="post" name="registerTravelForm" id="registerTravelForm">

  <p>Anv&auml;ndare:
    <input name="user" type="text" id="user" value="<% =Request.Cookies("sydostel")("User") %>">
  </p>
  <%
startNumber = 1
If request("fields") = "" then stopNumber = 1 Else stopnumber = request("fields")

For i = startNUmber to stopNumber

%>
  <p>Datum för resa: 
    <input name="travelDate<% =i %>" type="text" id="travelDate" size="10"> 
    Antal mil:
    <input name="miles<% =i %>" type="text" id="miles" size="10"> 
    Typ av resa: 
    <select name="travelType<% =i %>" id="travelType">
      <option value="Resa" selected>Resa</option>
    </select> 
    Uppdragsnummer:
    <input name="taskNr<% =i %>" type="text" id="taskNr" size="15">
	<input name="cnt" type="hidden" value="<% =i%>">
  </p>
<% Next %>
  <p>
    <input name="registrera" type="submit" id="registrera" value="Registrera">
  </p>

</form>

och sidan som tar emot:

<%
Dim strSQL, objConn, objRS

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=uppdragNu"
objConn.Open 

For each item in Request.Form("cnt")

  strSQL = "INSERT INTO tblTravel(user, travelDate, miles, TaskNr, travelType) " &_
		 "VALUES('" & Request.Form("user") & "', #" & Request.Form("travelDate" & item) & "#, " & Request.Form("miles" & item) & ", " &_ 
		 " '" & Request.Form("taskNr" & item) & "', '" & Request.Form("travelType" & item) & "')"
  objConn.execute(strSQL)

Next

objConn.Close 
Set objConn = Nothing
%>

Är det okej eller är det något jag missat eller kan göra bättre... Enkelhet förespråkas ju... ;)

Jag har inte lagt in något skydd mot sql-injections än, men det skall göras....

Tack till mig själv! :birp

Mvh
Henrik

249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)