For Programmers: Free Programming Magazines  


Home > Archive > PHP Smarty Templates > December 2004 > Re: [SMARTY] Sections and checkboxes









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Re: [SMARTY] Sections and checkboxes
Mark Rogers

2004-12-16, 8:58 pm

Erich Beyrent writes:
> I have two arrays that get assigned to my template - one containing
> platforms, the other containing supported platforms. I am trying to loop
> through both arrays and check the supported platforms.
>
> {section name=i loop=$Platforms}
> {section name=j loop=$SupportedPlatforms}
> {if $SupportedPlatforms[j].platformName == $Platforms[i].platformName}
> {$Platforms[i].platformName}
> <input type=checkbox value="{$Platforms[i].platformID"
> name="Platforms[]" checked>
> {else}
> <input type=checkbox value="{$Platforms[i].platformID"
> name="Platforms[]">
> {/if}
> {/section}
> {/section}
>
> This works, but displays two checkboxes for supported platforms. Is there

a
> way to break out of the section loop, or is there perhaps a better/easier
> way to accomplish my task?


There's a typo in there somewhere:
<input type=checkbox value="{$Platforms[i].platformID">
name="Platforms[]" checked>
... shouldn't parse (missed closing }).

In any case it looks to me like you'll get N checkboxes for each platform,
where N is the number of supported platforms, since each time through each
look is currently set to display something.

My recommendation is to provide better data to your template than try to
work through this in the template code, but the following might work:

{section name=i loop=$Platforms}
{assign var=printed value=false}
{section name=j loop=$SupportedPlatforms}
{if $SupportedPlatforms[j].platformName == $Platforms[i].platformName}
{$Platforms[i].platformName}
<input type=checkbox value="{$Platforms[i].platformID"
name="Platforms[]" checked>
{assign var=printed value=true}
{/if}
{/section}
{if not $printed}
<input type=checkbox value="{$Platforms[i].platformID"
name="Platforms[]">
{/if}
{/section}

... although I have a suspicion that I'm not really understanding what you're
trying to output here. Maybe the above will give you a clue, anyhow.

--
Mark Rogers,
More Solutions Ltd :: Tel: 0845 45 89 555
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com