Forums / Setup & design / Nest Loops

Nest Loops

Author Message

Starla Carpenter

Thursday 11 March 2004 6:27:57 pm

Nested loops are driving me mad!
(Actually the whole template thing is driving me mad. Anyone have any suggestions of where I can go to get educated?)

I have working code that displays events (shop items)that have been paid for and allows the user to register for them. (I realize that the option part probably doesn't have to be a loop, and I'd appreciate help eliminating that as well.) My real issue, however, is that I want to have an inner loop based on the the count associated with the event. So if someone purchased 3 registrations to an event, they would get three lines allowing them to put a different name for each registration. I had a lame attempt at a loop, but it didn't print out anything but the name input field (the correct number of times, however).

Thanks in advance for any help.

-Starla

<TABLE>
{section name=ProductItem loop=$order.product_items show=$order.product_items sequence=array(bglight,bgdark)}

<tr>
<td >{$ProductItem:item.object_name}<input type='hidden' name="eventName[]" value = "{$ProductItem:item.object_name}"> </TD>

{section name=Options loop=$ProductItem:item.item_object.option_list}
<td>{$ProductItem:Options:item.value}<input type='hidden' name="eventoption[]" value ="{$ProductItem:Options:item.value}"></TD>
{/section}

<TD>Name: </TD><TD><input type='text' name="regName[]"></TD>

</TR>

{/section}
</TABLE>

Tobias Persson

Thursday 11 March 2004 11:38:02 pm

I had about the same problems at first. I solved it by not using the name attribute in sections. Try something like this:

<TABLE>
{section loop=$order.product_items show=$order.product_items sequence=array(bglight,bgdark)}

<tr>
<td >{$:item.object_name}<input type='hidden' name="eventName[]" value = "{$:item.object_name}"> </TD>

{section loop=$:item.item_object.option_list}
<td>{$:item.value}<input type='hidden' name="eventoption[]" value ="{$:item.value}"></TD>
{/section}

<TD>Name: </TD><TD><input type='text' name="regName[]"></TD>

</TR>

{/section}
</TABLE>

Paul Forsyth

Friday 12 March 2004 2:03:04 am

If you are using 3.3 you can use the new section 'var' parameter. This greatly simplifies the need for names everywhere.

Eg:

{section loop=$loop var=Myloop}
{$MyLoop.item}

{section loop=$loop2 var=MyOtherloop}
{$MyOtherLoop.item}
{/section}

{/section}

Take a look at the new doco:

http://ez.no/ez_publish/documentation/reference/template_functions/program_flow/section

paul

eZ debug

Timing: Jan 31 2025 04:33:07
Script start
Timing: Jan 31 2025 04:33:07
Module start 'content'
Timing: Jan 31 2025 04:33:07
Module end 'content'
Timing: Jan 31 2025 04:33:07
Script end

Main resources:

Total runtime0.1406 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0067 587.7578180.8516
Module start 'content' 0.00670.0050 768.609493.9375
Module end 'content' 0.01170.1288 862.5469525.2109
Script end 0.1405  1,387.7578 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00352.4724200.0002
Check MTime0.00140.9830200.0001
Mysql Total
Database connection0.00070.507310.0007
Mysqli_queries0.087161.97011410.0006
Looping result0.00110.81211390.0000
Template Total0.128391.310.1283
Template load0.00090.617310.0009
Template processing0.127590.679010.1275
Override
Cache load0.00060.423210.0006
Sytem overhead
Fetch class attribute can translate value0.00080.547810.0008
XML
Image XML parsing0.00020.171510.0002
General
dbfile0.00725.1540200.0004
String conversion0.00000.004430.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs