© Сделано на LiveStreet
Дизайн - ©2009 MODx RED Group

Бежевый==bejevyi||Белый==belyi||Голубой==goluboi||Желтый==jeltyi<form action="[*id*]" method="POST">
<div class="s">
<label><input type="checkbox" value=""><b>Страна производитель</b><img id="arr" src="/images/arr_bottom.jpg" /></label>
<div class="strana">
<label><input type="checkbox" name="strana[]" value="rus">Россия</label>
<label><input type="checkbox" name="strana[]" value="ukr">Украина</label>
<label><input type="checkbox" name="strana[]" value="isp">Испания</label>
</div>
</div>
<div class="m">
<label><input type="checkbox" value=""><b>Назначение плитки</b><img id="arr" src="/images/arr_bottom.jpg" /></label>
<div class="naznachenie">
<label><input type="checkbox" name="nazn[]" value="kitchen">Для кухни</label>
<label><input type="checkbox" name="nazn[]" value="bath">Для ванной</label>
<label><input type="checkbox" name="nazn[]" value="roof">Для пола</label>
<label><input type="checkbox" name="nazn[]" value="mosaic">Мозайка</label>
</div>
</div>
<div class="p">
<label><input type="checkbox" value=""><b>Тип поверхности</b><img id="arr" src="/images/arr_bottom.jpg" /></label>
<div class="poverhnost">
<label><input type="checkbox" name="poverh[]" value="matovyi">Матовая</label>
<label><input type="checkbox" name="poverh[]" value="glyanec">Глянцевая</label>
</div>
</div>
<div class="m">
<label><input type="checkbox" value=""><b>По цвету</b><img id="arr" src="/images/arr_bottom.jpg" /></label>
<div class="poverhnost">
<label><input type="checkbox" name="color[]" value="bejevyi">Бежевый</label>
<label><input type="checkbox" name="color[]" value="belyi">Белый</label>
<label><input type="checkbox" name="color[]" value="goluboi">Голубой</label>
<label><input type="checkbox" name="color[]" value="jeltyi">Желтый</label>
</div>
</div>
<input id="button" type="submit" value="Подобрать">
</form>/filter/?strana=rus&strana=isp&nazn=kitchen&nazn=bath&color=goluboi&color=jeltyirus,isp,kitchen,bath,goluboi,jeltyi<?php
$strana = $_POST["strana"]; //параметр поля "name" checkbox но без "[]"
$nazn = $_POST["nazn"]; //параметр поля "name" checkbox но без "[]"
$poverh = $_POST["poverh"]; //параметр поля "name" checkbox но без "[]"
$color = $_POST["color"]; //параметр поля "name" checkbox но без "[]"
if (!isset($strana))
{
$event = "";
}
else
{
$lect = "";
for ($i=0;$i<count($strana);$i++)
{
$k = $strana[$i];
$lect = $lect . "$k,";
}
$event = $event . $lect . "</ul>";
$str .= "$event";
}
if (!isset($nazn))
{
$event = "";
}
else
{
$lect2 = "";
for ($i=0;$i<count($nazn);$i++)
{
$k = $nazn[$i];
$lect2 = $lect2 . "$k,";
}
$event2 = $event2 . $lect2 . "</ul>";
$str .= "$event2";
}
if (!isset($poverh))
{
$event = "";
}
else
{
$lect3 = "";
for ($i=0;$i<count($poverh);$i++)
{
$k = $poverh[$i];
$lect3 = $lect3 . "$k,";
}
$event3 = $event3 . $lect3 . "</ul>";
$str .= "$event3";
}
if (!isset($color))
{
$event = "";
}
else
{
$lect4 = "";
for ($i=0;$i<count($color);$i++)
{
$k = $color[$i];
$lect4 = $lect4 . "$k,";
}
$event4 = $event4 . $lect4 . "</ul>";
$str .= "$event4";
}
//после этой строки вставлять обработку доп. параметров если необходимо
echo $str; // вывод тегов
?>
if (!isset($color)) // $color - меняете на name из checkbox'a но без []
{
$event = "";
}
else
{
$lect4 = ""; //меняете цифру на след.
for ($i=0;$i<count($color);$i++) // $color - меняете на name из checkbox'a но без []
{
$k = $color[$i]; // $color - меняете на name из checkbox'a но без []
$lect4 = $lect4 . "$k,"; //меняете цифры на след.
}
$event4 = $event4 . $lect4 . "</ul>"; //меняете цифры на след.
$str .= "$event4"; //меняете цифры на след.
}
{{filter}}
[!Ditto? &startID=`2` &depth=`3` &tpl=`collection` &display=`all` &tagDelimiter=`,` &tags=`[[filter]]` &tagData=`tvcollection_strana,tvcollection_nazn,tvcollection_poverh,tvcollection_color` &tagMode=`onlyTags` &sortBy=`createdon` &sortDir=`ASC`!]
Комментарии (13)
RSS свернуть / развернуть?strana=rus&strana=isp&nazn=kitchen&nazn=bath&color=goluboi&color=jeltyi
преобразовать в такой
?strana=rus,isp&nazn=kitchen,bath&color=goluboi,jeltyi
обыскался уже везде…
maloy
Zinich66
Как возможно сделать появление нужных чекбоксов при выборе какого-то товара из выпадающего списка?
drvirus
drvirus
а что делает — $event?
doc555
doc555
lollypops
lollypops
lollypops
вместо требуемой строки выдаёт просто 3
тройка видимо startID
vitvlg
Но работает только при tagMode:
но почему-то не хочет при:
Надо, чтобы выдавались док-ты, у которых есть весь набор, отмеченный в форме.
Причём, что заметил, если вместо вызова сниппета в параметр «tags» поставить конкретный набор, к примеру:
то все работает нормально и выдаются док-ты, у которых отмечены все эти параметры.
Но если ставим в Ditto вызов сниппета [[filter]], то не выдаёт ничего.
Танцы с бубном вокруг кеширования/некеширования ничего не дают.
Голый вызов сниппета [[filter]] (не в вызове Ditto) выдает правильно:
rus,kitchen,mozaic,bejevyi
Куда можно копнуть?
rpa-design
Можно так же копнуть в сторону экстендера andFilter, при его использовании фильтрация будет по-умолчанию только по конкретному набору тегов. Ресурс должен иметь строго заданный набор тегов, чтобы попасть в выборку.
У меня появился вот такой вопрос: как лучше сохранить отмеченные чекбоксы после отправки формы?
Поначалу сделал как тут modx-shopkeeper.ru/forum/viewtopic.php?id=1049 и все заработало, но смущает количество вызовов сниппета, ибо он вызывается некэшированным в каждом input`е формы.
zubikov
vanchelo
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.