This is a brainteaser that should have been easy to resolve but just doesn't seem to work for me ... The original application includes a form page for editing the details of an "item". In my case the item is a comicbook. The page functions just fine as long as I stick with text fields, but I run into problems when I try to change a couple of the text fields into checkboxes.
So, here's the code of the Item.asp page with text fields:
Expand|Select|Wrap|Line Numbers
- <%
- Dim blnNew
- ' detect whether the user is adding a new item or editing an existing one
- Select Case Request.QueryString("Action")
- Case "AddNew"
- blnNew = True
- Case "Edit"
- blnNew = False
- End Select
- %>
- <div id="fullwidth">
- <%
- If blnNew Then
- Response.Write _
- "<center><h1>Add an issue to the database</h1></center>" & _
- "<center><p>Please add the following information for the issue you've just acquired</p> "
- Else
- Response.Write _
- "<center><h1>Edit data for issue you already have</h1></center>" & _
- "<center><p>Please edit the information for this item</p> "
- Dim rsItem
- Set rsItem = Server.CreateObject("ADODB.Recordset")
- strSQL = "SELECT Title.titleName, Item.idItem, Item.issue, Item.[month], Item.[year], " & _
- " Item.cond, Item.gcdb, Item.image, Item.cents, Item.have, Item.want, Item.note " & _
- " FROM Title INNER JOIN Item ON Title.idTitle = Item.idTitle " & _
- " ORDER BY titleName,month;"
- rsItem.Open strSQL, objConn, adOpenForwardOnly, adLockOptimistic, adCmdText
- End If
- %>
- <form action="addItem.asp" method="post">
- <%
- If blnNew Then %>
- <input type="Hidden" name="idItem" value=""> <%
- Else %>
- <input type="Hidden" name="idItem" value="<%= Request("Item") %>"> <%
- End If
- %>
- <table border='0'>
- <tr>
- <td width=20% rowspan=8> </td>
- <td align="right">Title:</td>
- <td colspan="3"><input type="Text" name="titleName"
- value="<% If Not blnNew Then Response.Write rsItem("titleName") End If%>"
- size="40" maxlength="75"></TD>
- </tr>
- <tr>
- <td align="right">Issue:</td>
- <td><input type="Text" name="issue"
- value="<% If Not blnNew Then Response.Write rsItem("issue") End If%>"
- size="6"></td>
- <td align="right">Condition:</td>
- <td><input type="Text" name="cond"
- value="<% If Not blnNew Then Response.Write rsItem("cond") End If%>"
- size="6"></td>
- </tr>
- <tr>
- <td align="right">Month:</td>
- <td><input type="Text" name="month"
- value="<% If Not blnNew Then Response.Write rsItem("month") End If%>"
- size="6"></td>
- <td align="right">Year:</td>
- <td><input type="Text" name="year"
- value="<% If Not blnNew Then Response.Write rsItem("year") End If %>"
- size="6"></td>
- </tr>
- <tr>
- <td align="right">GCDB Page:</td>
- <td colspan="3"><input type="Text" name="gcdb"
- value="<% If Not blnNew Then Response.Write rsItem("gcdb") End If%>"
- size="40"></td>
- </tr>
- <tr>
- <td align="right">Image:</td>
- <td colspan="3"><input type="Text" name="image"
- value="<% If Not blnNew Then Response.Write rsItem("image") End If%>"
- size="40"></td>
- </tr>
- <tr>
- <td align="right">Cents:</td>
- <td><input type="Text" name="cents"
- value="<% If Not blnNew Then Response.Write rsItem("cents") End If %>"
- size="6"></td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <td align="right">Have:</td>
- <td><input type="Text" name="have"
- value="<% If Not blnNew Then Response.Write rsItem("have") End If %>"
- size="6"></td>
- <td align="right">Want:</td>
- <td><input type="Text" name="want"
- value="<% If Not blnNew Then Response.Write rsItem("want") End If %>"
- size="6"></td>
- </tr>
- <tr>
- <td align="right">Notes:</td>
- <td colspan="3"><input name="note" type="text"
- value="<% If Not blnNew Then Response.Write rsItem("note") End If %>"
- size="40"></td>
- </tr>
- <tr>
- <td> </td>
- <td align=center colspan=4><BR><%
- If Not blnNew Then %>
- <input type="Submit" name="Delete" value="Delete Item"><%
- End If %>
- <input type="Submit"
- value="<% If blnNew Then %>Add New Item<% Else %>Update Item<% End If %>">
- <input type="Reset"></TD>
- </TR>
- </table>
- </form>
My problem arises when I try to change the "cents", "have" and "want" fields to checkboxes. This bit of code almost works:
Expand|Select|Wrap|Line Numbers
- 106 <td align="right">Cents:</td>
- 107 <td><% If rsItem("cents") then strChecked = " checked" End If %>
- 108 <input type="checkbox" name="cents" value="<%=rsItem("cents")%>"<%=strChecked%>>
- </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <td align="right">Have:</td>
- <td><% If rsItem("have") then strChecked = " checked" End If %>
- <input type="checkbox" name="have" value="<%=rsItem("have")%>"<%=strChecked%>>
- </td>
- <td align="right">Want:</td>
- <td><% If rsItem("want") then strChecked = " checked" End If %>
- <input type="checkbox" name="want" value="<%=rsItem("want")%>"<%=strChecked%>>
- </td>
I say "almost" because it works fine (returns a checked checkbox when the related field in the database is checked) when I'm looking at an existing database entry, but it fails when I try to use it to add an entirely new item, with this error message:
Expand|Select|Wrap|Line Numbers
- Microsoft VBScript runtime error '800a000d'
- Type mismatch
- /publishing/comics/collecting/admin/item2.asp, line 107
Best,
peck2000