“自动完成”文本框未前进到下一条记录
Autocomplete textbox not progressing to the next record
我使用下面的代码来获取文本框中的信息,但当它运行时,它只显示数据库的第一条记录。我怎样才能拿到下一张唱片?
VBScript。。。
Dim Leads
Dim Leads_cmd
Dim Leads_numRows
Set Leads_cmd = Server.CreateObject ("ADODB.Command")
Leads_cmd.ActiveConnection = MM_PSCRM_STRING
Leads_cmd.CommandText = "SELECT lead_desc from dba.lead"
Leads_cmd.Prepared = true
Set Leads = Leads_cmd.Execute
Leads_numRows = 0
...
...
'At end of file...
Leads.Close()
Set Leads = Not
JavaScript部分。。。
$(function() {
var availableTags = ["<%=(Leads.Fields.Item("lead_desc").Value)%>"];
$( "#tags" ).autocomplete({
source: availableTags
});
});
HTML部分。。。
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags" name="NameCus">
</div>
您最好使用GetRows()
将数据读取到数组中。然后,您可以使用这个二维数组来在线填充JavaScript代码。。。
Dim rs, sql, res
sql = "SELECT lead_desc from dba.lead"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql, MM_PSCRM_STRING, 0, 1, 1
res = rs.GetRows()
rs.Close()
Set rs = Nothing
Dim c, arr
For c = 0 To UBound(res, 2)
arr = arr & res(0, c) & ""","""
Next
arr = """" & Left(arr, Len(arr)-1) & """" 'Chop off the last comma
(Martha提醒):还有RecordSet对象的GetString
方法:
Dim rs, sql, res
sql = "SELECT lead_desc from dba.lead"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql, MM_PSCRM_STRING, 0, 1, 1
arr = rs.GetString(,,,",")
rs.Close()
Set rs = Nothing
(我假设您使用的是SQL Server):如果您在SQL中执行此操作,则可以使用STUFF
方法将字符串编译为列表。不过,我建议您为此使用存储过程。
Dim rs, sql, res
sql = _
"SELECT STUFF((" & _
"SELECT " & _
"',' + lead_desc " & _
"FROM " & _
"dba.lead " & _
"ORDER BY " & _
"dba.lead " & _
"FOR XML PATH('')), 1, 1, '') "
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql, MM_PSCRM_STRING, 0, 1, 1
res = rs.GetRows()
rs.Close()
Set rs = Nothing
还有你的JavaScript。。。
var availableTags = [<%= arr %>];
将您的javascript代码更改为以下代码:
<script>
$(function() {
var availableTags = ["<%
Do Until Leads.EOF
Response.Write(Leads.Fields.Item("lead_desc").Value & ",")
Leads.Movenext
Loop
%>"];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
这是因为您忘记在循环中执行语句。所以,只有第一个元素被加载到自动完成中。希望这有帮助:)
感谢大家的支持。我是这样做的
<script type="text/javascript" language="javascript">
<!--
$(function() {
$( "#productname" ).autocomplete({
source: "list.asp",
minLength: 2
});
});
// -->
</script>
相关文章:
- 在检索到最后一条记录后从 PostgreSQL 中提取记录
- 子网格:限制用户仅选择一条记录
- CSS悬停在JQuery循环的最后一条记录中不起作用
- 数据中的一条记录使用浮动图时未创建饼图
- 是为大约100条记录中的每一条呈现一个表单更快,还是用ajax加载单个表单更快
- “自动完成”文本框未前进到下一条记录
- 如何使用 JavaScript 函数在 JSP 中使用按钮移动到数据库的最后一条记录
- 剑道网格在删除后仍显示最后一条记录
- 如何使用angularJs/Javascript/Jquery获取表的最后一条记录并更新列值并插入到具有新记录的同一列
- 角度拼接函数删除另一条记录而不是实际选择的记录
- Firefox操作系统TCPSocket API:SSL接收到一条超过最大允许长度的记录
- 当记录不止一条时,禁止使用禁用文本字段
- Jquery在“下一条记录”上加载当前选项卡
- 数据存储在ember中只返回一条记录
- Ember data find()方法返回数组,但我需要一条记录
- 在服务器不知道查询的是哪条记录的情况下,查询服务器是否存在一条记录
- php . .使用文本文件在分号表中插入(追加)一条记录
- 使用angularjs更新一条记录
- 使用sequelize获取下一条记录
- MongoDB确定一条记录是否会通过findOne