0

製品情報を取得する必要があります。データベースからいくつかのデータを編集してデータベースに保存したいと考えています。フォームの編集ページを作成し、他の保存ページに値を渡しました。編集したレコードのみを保存したいのですが、「保存」ボタンをクリックすると、すべてのレコードのデータが渡されました。私が混乱したのは、同じ受け渡し方法で、特定のレコードのみを正常に削除できることでした。

これが私のコードです..

<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">&nbsp;</td>
        <td class="center bold" width="30">&nbsp;</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">
            &nbsp;&nbsp;(<%=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
%>      
4

1 に答える 1

1

最も簡単な解決策は、既存のタグをループ内のテーブル行の周りに移動することです。そうすれば、保存ページのコードを変更することなく、一度に 1 行ずつ編集できます。

以下のフォーム タグをコードに追加しましたが、既に使用している FORM タグを使用する必要があります。

<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">&nbsp;</td>
        <td class="center bold" width="30">&nbsp;</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       

%>
    <form action="" method=""><!--move your form open tag here-->                                       
    <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">
            &nbsp;&nbsp;(<%=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>
    </form><!--move your form close tag here-->
<%
rsPdtn_sizeColor.movenext

Loop    
rsPdtn_sizeColor.movefirst
end if
%>       
于 2012-09-11T22:35:04.303 に答える