Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Динамическая Алфавитная Навигация
Я использую ColdFusion , чтобы вернуть результирующий набор из базы данных SQL и превратить его в список.
Мне нужен какой-то способ создать алфавитную навигационную панель для этого списка. У меня есть библиотека ColdFusion и jQuery.
Я ищу, чтобы создать что-то вроде этого:
A | B | C | ...
- A
- A
- B
- B
- B
- C
- D
Где нажатие на одну из букв опускает вас вниз по странице до первого элемента для этой буквы. Не все 26 букв алфавита обязательно используются.
Чтобы создать панель навигации, вы можете сделать что-то вроде этого:
<cfoutput>
<cfloop from="#asc('A')#" to="#asc('Z')#" index="i">
<a href="###chr(i)#">#chr(i)#</a>
<cfif asc('Z') neq i>|</cfif>
</cfloop>
</cfoutput>
(CFLOOP не работает с символами, поэтому вам придется конвертировать их в код ascii и обратно.)
Чтобы отобразить элементы в вашем запросе, вы можете сделать что-то вроде этого.
<cfset currentLetter = "">
<cfoutput query="data">
<cfif currentLetter neq left(data.name, 1)>
<h3><a name="#ucase(left(data.name, 1))#">#ucase(left(data.name, 1))#</a></h3>
</cfif>
<cfset currentLetter = left(data.name, 1)>
#name#<br>
</cfoutput>
Вы можете использовать функцию группировки запросов для вашего запроса записей. Очевидно, что вам придется изменить поля запроса в соответствии с вашими данными, и функция left() может иметь различный синтаксис в зависимости от вашего ядра СУБД. Приведенный ниже запрос работает на MSSQL.
<cfquery datasource="#application.dsn#" name="qMembers">
SELECT firstname,lastname, left(lastname,1) as indexLetter
FROM member
ORDER BY indexLetter,lastName
</cfquery>
<p id="indexLetter">
<cfoutput query="qMembers" group="indexLetter">
<a href="###qMembers.indexLetter#">#UCase(qMembers.indexLetter)#</a>
</cfoutput>
</p>
<cfif qMembers.recordCount>
<table>
<cfoutput query="qMembers" group="indexLetter">
<tr>
<th colspan="99" style="background-color:##324E7C;">
<a name="#qMembers.indexLetter#" style="float:left;">#UCase(qMembers.indexLetter)#</a>
<a href="##indexLetter" style="color:##fff;float:right;">index</a>
</th>
</tr>
<cfoutput>
<tr>
<td><strong>#qMembers.lastName#</strong> #qMembers.firstName#</td>
</tr>
</cfoutput>
</cfoutput>
</table>
<cfelse>
<p>No Members were found</p>
</cfif>
Я бы получил SQL результирующий набор, чтобы вернуть список в первую очередь, вы можете легко просто взять первую букву нужного элемента и подсчитать. Самым быстрым способом было бы выполнить соединение в таблице из 26 символов (меньше манипуляций со строками таким образом).
В CF используйте значение count, чтобы убедиться, что если нет результата, вы либо только отображаете букву (как стандартный текст), либо не отображаете ее вообще.
Сколько строк вы собираетесь работать, поскольку могут быть лучшие способы сделать это. Например, сохранение первой буквы поля требуемой ссылки в отдельном столбце при вставке уменьшит накладные расходы при выборе.
Итак, было много хороших предложений, но ни одно из них не сделало именно то, что я хотел. К счастью, я смог использовать их, чтобы понять, что я действительно хочу сделать. Единственное, что ниже не делается, - это печать последних неиспользуемых букв (если они есть). Вот почему у меня есть этот оператор cfif, проверяющий 'W', поскольку это последняя буква, которую я использую, иначе он должен проверить Z.
<cfquery datasource="#application.dsn#" name="qTitles">
SELECT title, url, substr(titles,1,1) as indexLetter
FROM list
ORDER BY indexLetter,title
</cfquery>
<cfset linkLetter = "#asc('A')#">
<cfoutput query="titles" group="indexletter">
<cfif chr(linkLetter) eq #qTitles.indexletter#>
<a href="###ucase(qTitles.indexletter)#">#ucase(qTitles.indexletter)#</a>
<cfif asc('W') neq linkLetter>|</cfif>
<cfset linkLetter = ++LinkLetter>
<cfelse>
<cfscript>
while(chr(linkLetter) != qTitles.indexletter)
{
WriteOutput(" " & chr(linkLetter) & " ");
IF(linkLetter != asc('W')){WriteOutput("|");};
++LinkLetter;
}
</cfscript>
<a href="###ucase(qTitles.indexletter)#">#ucase(qTitles.indexletter)#</a>
<cfif asc('W') neq linkLetter>|</cfif>
<cfset linkLetter = ++LinkLetter>
</cfif>
</cfoutput>
<ul>
<cfset currentLetter = "">
<cfoutput query="qTitles" group="title">
<cfif currentLetter neq #qTitles.indexletter#>
<li><a name="#ucase(qTitles.indexletter)#">#ucase(qTitles.indexletter)#</a></li>
</cfif>
<cfset currentLetter = #qTitles.indexletter#>
<li><a href="#url#">#title#</a></li>
</cfoutput>
</ul>