我正在为租户开发一个寻找房产的网站。当他们注册时,他们可以选择他们感兴趣的房产类型,例如:公寓或住宅。
当租户登录他们的帐户时,他们可以搜索属性。搜索表单预填充了他们最初在注册时输入的值,例如:城市,邮政编码等。
表单还需要显示一些复选框,其中勾选了他们在注册时选择的属性类型的相关框。我有一些问题让这个工作,并想知道是否有人可以为我纠正代码?
我认为我需要使用'IN'语句,以便勾选相关的复选框,如果在CustomerReqPropertyType列中找到这些属性的ID。 CustomerReqPropertyType列是varchar(50),并且作为示例,如果用户选择了Apartment和House,则它在行中存储为2,4(因为存在具有属性类型的单独表。
这是我在页面上的代码;
<%
While (NOT rspropertytype.EOF)
%>
<li>
<input type="checkbox" name="txtPropertyType" id="txtPropertyType" value="<%=(rspropertytype.Fields.Item("PropertyTypeID").Value)%>"<% If Not rstenantrequirements.EOF Or Not rstenantrequirements.BOF Then %><%If (Not isNull((rstenantrequirements.Fields.Item("CustomerReqPropertyType").Value))) Then If (CStr(rspropertytype.Fields.Item("PropertyTypeID").Value) = CStr((rstenantrequirements.Fields.Item("CustomerReqPropertyType").Value))) Then Response.Write("")%><% End If ' end Not rstenantrequirements.EOF Or NOT rstenantrequirements.BOF %> />
<label for="txtPropertyType"><%=(rspropertytype.Fields.Item("PropertyTypeTitle").Value)%></label>
</li>
<%
rspropertytype.MoveNext()
Wend
If (rspropertytype.CursorType > 0) Then
rspropertytype.MoveFirst
Else
rspropertytype.Requery
End If
%>
我将非常感谢任何帮助。
答案 0 :(得分:1)
为了选中复选框,checked属性必须等于“checked”。
e.g。
<input type="checkbox" name="something" value="somethingElse" checked="checked" />
我怀疑在你的代码中,rspropertytype和rstenantrequirements记录集可以合并到一个SQL语句生成的一个记录集中。
e.g。
SELECT pt.*
, CASE
WHEN ISNULL(tr.CustomerReqPropertyType,0) = 0 THEN 0
ELSE 1 END AS [checked]
FROM propertytype AS [pt]
LEFT JOIN tenantrequirements AS [tr]
ON pt.PropertyTypeID = tr.CustomerReqPropertyType
WHERE ...
然后您的ASP代码也可以简化。
e.g。
<%
While (NOT rs.EOF)
Dim pID : pID = rs("PropertyTypeID")
Dim pTitle : pTitle = rs("PropertyTypeTitle")
Dim checked : checked = "" : If (rs("checked") = 1) Then checked = "checked"
%>
<li>
<input type="checkbox" name="txtPropertyType" id="txtPropertyType<%=pID%>" value="<%=pID%>" checked="<%=checked%>" />
<label for="txtPropertyType<%=pID%>"><%=pTitle%></label>
</li>
<%
rs.MoveNext()
Wend
%>
答案 1 :(得分:0)
这真的很难理解。首先,我将该行拆分为您可以设置变量并将其打印到页面的位置。我假设您正在尝试设置复选框。我要做的是确保返回的值不为null,假设这是一个只返回属性类型的查询,并且当它们为相关属性设置时,您将其与表中包含描述的表连接起来。我没有看到你打印到复选框,所以它永远不会被检查。