我需要檢索產品信息。從數據庫,現在想編輯一些數據並將其保存回數據庫。我創建了「編輯表單」頁面並將值傳遞給另一個「保存」頁面。我想要的只是保存已編輯的記錄,但是當我點擊「保存」按鈕時,所有記錄的數據都通過了。我感到困惑的是與相同的傳遞方法,我可以成功刪除只有特定的記錄。如何僅保存從數據庫檢索到的已編輯數據?我很困惑。我可以刪除特定記錄但不能保存特定記錄
這裏是我的代碼..
<table cellpadding="0" cellspacing="0" border="1" width="100%">
<tr class="border bluebackend" >
<td class="center bold" width="30">Size</td>
<td class="center bold" width="30">Color</td>
<td class="center bold" width="27%">Est. Qty (dz.)</td>
<td class="center bold" width="30"> </td>
<td class="center bold" width="30"> </td>
</tr>
<%
dim total_qty_est, total_qty
if rsPdtn_sizeColor.eof then
response.Write "<tr><td colspan=""3"">file not found</td></tr>"
Else
Do while Not rsPdtn_sizeColor.EOF
total_qty_est = rsPdtn_sizeColor.fields.item("pdtn_st_qty_est")
total_qty = total_qty + total_qty_est
%>
<tr >
<td class="center">
<select name="pdtn_st_size">
<option selected>-- size -- </option>
<option value="L" <%=checkSelectedScript(rsPdtn_sizeColor.fields.item("pdtn_st_size"),"L")%>>L</option>
<option value="XL" <%=checkSelectedScript(rsPdtn_sizeColor.fields.item("pdtn_st_size"),"XL")%>>XL</option>
</select>
</td>
<td class="center">
<select name="pdtn_st_color">
<option selected>-- color -- </option>
<option value="Orange" <%=checkSelectedScript(rsPdtn_sizeColor.fields.item("pdtn_st_color"),"Orange")%>>Orange</option>
<option value="Pink" <%=checkSelectedScript(rsPdtn_sizeColor.fields.item("pdtn_st_color"),"Pink")%>>Pink</option>
</select>
</td>
<td class="center">
<input type="text" value="<%=PcsToDz(rsPdtn_sizeColor.fields.item("pdtn_st_qty_est"))%>" name="pdtn_st_qty_est" size="3">
(<%=rsPdtn_sizeColor.fields.item("pdtn_st_qty_est")%>)
</td>
<td><input type="button" name="" value="Del" onClick="confirmationDeletePrice('../engine/delPdtn_szCl.asp?pdtn_szcl_id= <%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>&pdtn_st_id=<%=rsPdtn_sizeColor.fields.item("tbl_pdtn_sizecolor.pdtn_st_id")%>')"></td>
<td class="center" >
<input type="button" name="" value="Save" onClick="confirmationSaveProduction_Szcl('production_szcl_edit_action.asp?pdtn_szcl_id= <%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>')">
<input type="hidden" value="Y" name="edit_pdtn_szcl">
<input type="hidden" value="<%=rsPdtn_sizeColor.fields.item("pdtn_szcl_id")%>" name="pdtn_szcl_id">
</td>
</tr>
<%
rsPdtn_sizeColor.movenext
Loop
rsPdtn_sizeColor.movefirst
end if
%>
,這是我保存的頁面代碼...
<%
pdtn_st_id = Request.form("pdtn_st_id")
pdtn_st_qty_est_dz = Request.form("pdtn_st_qty_est")
if pdtn_st_qty_est_dz <> "" then
pdtn_st_qty_est = DztoPcs(pdtn_st_qty_est_dz)
end if
pdtn_st_size = Request.form("pdtn_st_size")
pdtn_st_color = Request.form("pdtn_st_color")
edit_pdtn_szcl = Request.form("edit_pdtn_szcl")
call checkBlank(pdtn_st_qty_est)
if SomethingError <> "yes" then
Call DBConnOpen()
Set Rs = Server.CreateObject("ADODB.Recordset")
Set Rs.ActiveConnection = Conn
strSQL = "SELECT * FROM tbl_pdtn_sizecolor"
pdtn_szcl_id = Request.form("pdtn_szcl_id")
strSQL = strSQL & " WHERE pdtn_szcl_id =" & pdtn_szcl_id & ""
Rs.Open strSQL, Conn, 1, 3
Rs.Fields("pdtn_st_id") = pdtn_st_id
Rs.Fields("pdtn_st_qty_est") = pdtn_st_qty_est
Rs.Fields("pdtn_st_size") = pdtn_st_size
Rs.Fields("pdtn_st_color") = pdtn_st_color
Rs.Update
Rs.Close
response.redirect "production_view.asp?pdtn_st_id=" & pdtn_st_id
Call DBConnClose()
else
call writeInputError
end if
%>
如果只顯示一個列。這隻會工作,否則,因爲每行都有相同的字段名稱,所有行的值將被合併到一個值中。快速(但不推薦)的解決方案是在每個表格行周圍包裝FORM開始和結束標籤。但更好的解決方案將取決於您是否希望能夠一次編輯一行或一次編輯所有行? – johna
@John,我想一次添加一個。那麼你能否建議我在這種情況下應該怎麼做?謝謝。 – Alxan