#coldfusion
#coldfusion
Вопрос:
Позвольте мне начать с того, что я новичок в ColdFusion и пытаюсь учиться, поэтому, пожалуйста, потерпите меня.
Я работаю в жилом комплексе, который обслуживает студентов местного колледжа. У нас есть квартиры с одной, двумя и четырьмя спальнями. Каждая комната в квартире сдается отдельному студенту. Что я хочу сделать, так это заполнить HTML-таблицу всеми людьми в комнате. Мой запрос работает и извлекает все соответствующие данные, но происходит то, что каждый пользователь разделяется на свою собственную таблицу HTML вместо того, чтобы все люди в комнате помещались в одну таблицу. Вот пример:
Чего я хочу
Что происходит:
Вот мой код:
<!---Begin data table--->
<cfoutput query = "qryGetAssignments">
<div class="datagrid">
<table>
<tr><td align="right"><strong>#RoomType#</strong></td></tr>
<thead>
<tr>
<th>#RoomNumber#</th>
</thead>
<tbody>
<tr><td><strong>#Bed#</strong>
| #FirstName# #LastName# :: #StudentNumber#
</td>
</tr>
</tbody>
</table>
</div>
</cfoutput>
Я знаю, почему выходные данные получаются такими, какие они есть, я просто не знаю, как это исправить. Я хочу, чтобы в одной таблице было четыре жильца для квартиры с четырьмя спальнями, два жильца в таблице для двухкомнатной и так далее. Заранее спасибо за вашу помощь.
Редактировать: Извините за путаницу. Вот полное изображение того, к чему я стремлюсь:
Комментарии:
1. вероятно, вы не хотите, чтобы вся ваша таблица находилась внутри части, которая зацикливается на строках, иначе вы получите таблицу для каждой строки, а не строку для каждой строки.
2. Привет, Кевин, спасибо за твой комментарий. Я попытался переместить тег <cfoutput> вниз внутри таблицы. Когда я это делаю, я получаю тот же вывод «разделить», только таблица отформатирована вертикально, каждая запись поверх другой, вместо формата страницы с тремя столбцами, как я собираюсь.
3. формат страницы с 3 столбцами? я не понимаю, как это представлено на вашем первом изображении.
4. хм … вы пытаетесь распределить 4 человек по нескольким комнатам, исходя из того, сколько человек может поместиться в каждой комнате? если это так, то…. нам нужно намного больше информации, например, о том, как вы генерируете этот запрос, потому что в его текущем формате он относительно бесполезен для решения вашей проблемы.
5. Взгляните на функцию<cfoutput group=»..»> . Вы могли бы легко использовать его для генерации одной таблицы или div для каждого номера комнаты. Смотрите пример . Чтобы отобразить три таблицы / divs в строке, загляните в оператор MOD .
Ответ №1:
Это должно сделать то, что вам нужно, при условии, что ваш запрос правильно упорядочен по RoomType, для <cfoutput group="">
работы.
<!---Begin data table--->
<cfoutput query="qryGetAssignments" group="roomType">
<div class="datagrid"><!--- If this isn't needed to style the tables, it can be moved outside the loop --->
<table>
<tr><td align="right"><strong>#qryGetAssignments.roomType#</strong></td></tr>
<thead>
<tr>
<th>#qryGetAssignments.roomNumber#</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>#qryGetAssignments.bed#</strong>
<cfoutput><!--- this output here will loop over rows for that groupby --->
| #FirstName# #LastName# :: #StudentNumber#
</cfoutput>
</td>
</tr>
</tbody>
</table>
</div>
</cfoutput>
Я также определил область действия переменных вашего запроса, по крайней мере, я полагаю, что это переменные из запроса.
Ответ №2:
Это должно сработать, за исключением того, что, возможно, потребуется сгруппировать их по «номеру комнаты», например N108.