@viktorross

Проблема с циклом smarty?

Здравствуйте, появилась проблема, которую сразу не заметил, существует несколько полей, при выборе 1 поля все нормально, значение 1 это 1. Но после выбора поля 1 появляется зависимое от него поле 2, в котором уже значение 1 будет второе в списке, а первое значение это ссылка генерируемая на то что выбрано в предыдущем поле. При этом во втором поле последнее значение уходит как 1 значение третьего зависимого поля.

Не понятно почему такая путаница произошла.. вот шаблон

{* ---------------- depending field 1 ------------------ *}
	<h3 class="heading"><span class="fgsd_Tyr">{$v.depending.name1}</span></h3>
	{if !isset($post_array[$v.depending.caption1]) || !$post_array[$v.depending.caption1]} {* no value set *}
	<select class="tests45" style="width: 100%;" onchange="window.location.href=this.options[this.selectedIndex].value">
<option value="">{$lng.search.no_selectedrefine}</option>
	{foreach from=$v.depending.elements item=t name=elements}
		{capture name=field_string assign=field_string}{$v.depending.caption1}-{$t.name|lower|replace:'/':'_'}/{/capture}
		
		<option value="{if $settings.enable_locations && in_array($v.depending.caption1, $location_fields)}javascript:;" onclick="changeLocation('{$live_site}', '{$v.depending.caption1}|{$t.name|rawurlencode}'){else}{if $seo_settings.enable_mod_rewrite}{$constructed_url|replace:$sfield:$field_string}{else}{$constructed_url}{$separator}{$v.depending.caption1}={$t.name|replace:'/':'_'}{/if}{/if}">{$t.name|truncate:19:"...":true}</option>

		
	{/foreach}
	
	</select>

	{else} {* a value is set for this field *}

	<div class="property current-filter" style="text-transform: capitalize; font-weight: 700;">{$post_array[$v.depending.caption1]}<div class="rfloat"><a href="{if $settings.enable_locations && in_array($v.depending.caption1, $location_fields)}javascript:;" onclick="changeLocation('{$live_site}', '{$v.depending.caption1}|'){else}{$constructed_url|replace:$sfield:''}{/if}" class="remove"><i class="fa fa-trash fa-lg" style="vertical-align:bottom; margin-right:10px; padding-bottom:2px; color:#09f;"></i></a></div></div>

	{/if}

	<hr/>

	{* ---------------- depending field 2 ------------------ *}
	{if isset($post_array[$v.depending.caption1]) && $post_array[$v.depending.caption1]}
	<h3 class="heading"><span class="fgsd_Tyr">{$v.depending.name2}</span></h3>
	{if $seo_settings.enable_mod_rewrite}{assign var="separator" value="?"}{else}{assign var="separator" value="&amp;"}{/if}

	{if $seo_settings.enable_mod_rewrite}
		{capture name=sfield assign=sfield}##{$v.depending.caption2}##/{/capture}

		{seo->makeSearchLink p1=$post_array p2=$page p3="page|category|`$v.depending.caption2`|`$v.depending.caption3`|`$v.depending.caption4`" p4=$v.depending.caption2  p5=$category_name assign='constructed_url'}

	{else}

		{capture name=some_content assign=constructed_url}{$live_site}/listings.php?page=1{foreach from=$post_array key=k item=x name=construct_url}{if $x!='' && $k!=$v.depending.caption2 && $k!=$v.depending.caption3 && $k!=$v.depending.caption4 && $k!="page" && $k!="show" && (!$settings.enable_locations || (!in_array($k, $location_fields) && $k!="crt_city"))}{$separator}{$k}={$x|replace:'/':'_'}{assign var="separator" value="&amp;"}{/if}{/foreach}{/capture}

	{/if}
		
	    {if !isset($post_array[$v.depending.caption2]) || !$post_array[$v.depending.caption2]}
		
		<select class="tests45" style="width: 100%;" onchange="window.location.href=this.options[this.selectedIndex].value">
        <option value="">{$lng.search.no_selectedrefine}</option>
	    {foreach from=$v.depending.elements2 item=t name=elements2}
		<option value="{if $settings.enable_locations && in_array($v.depending.caption2, $location_fields)}javascript:;" onclick="changeLocation('{$live_site}', '{$v.depending.caption2}|{$t.name|rawurlencode}'){else}{if $seo_settings.enable_mod_rewrite}{$constructed_url|replace:$sfield:$field_string}{else}{$constructed_url}{$separator}{$v.depending.caption2}={$t.name|replace:'/':'_'|rawurlencode}{/if}{/if}">{$t.name|truncate:19:"...":true}</option>
		{capture name=field_string assign=field_string}{$v.depending.caption2}-{$t.name|lower|replace:'/':'_'|rawurlencode}/{/capture}
	    {/foreach}
</select>

	{else} {* a value is set for this field *}

	<div class="property current-filter" style="text-transform: capitalize; font-weight: 700;">{$post_array[$v.depending.caption2]}<div class="rfloat"><a href="{if $settings.enable_locations && in_array($v.depending.caption2, $location_fields)}javascript:;" onclick="changeLocation('{$live_site}', '{$v.depending.caption2}|'){else}{$constructed_url|replace:$sfield:''}{/if}" class="remove"><i class="fa fa-trash fa-lg" style="vertical-align:bottom; margin-right:10px; padding-bottom:2px; color:#09f;"></i></a></div></div>

	{/if}

	<hr/>
	{/if} 
{* ---------------- end depending field 2 ------------------ *}
  • Вопрос задан
  • 6 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы