[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переход по страницам
irina1104
Добрый день!
Подскажите как настроить переход в раздел каталога на то место по которой позиции переходит в раздел. Например мы по поиску нашли позицию "К0007820"
http://polmar.ru/search/?q=%CA0007820&s.x=0&s.y=0
далее для перехода в позицию мы нажимаем на наименование
http://polmar.ru/catalog/?ELEMENT_ID=30000...phrase_id=57736
и переходим в подробное описание. затем мы хотим перейти в раздел в котором находится эта позиция нажимаем на "Перейти в раздел" и переходим в самое начало данного раздела а сама позиции находится где то внизу или вообще на другой странице.
как сделать так чтобы он переходил в раздел именно на эту позицию??



Спустя 1 час, 49 минут, 8 секунд (29.05.2012 - 11:23) Игорь_Vasinsky написал(а):
формировать <a name="id">элемент в списке</a> - и дополнительно передавать в урл.

Спустя 33 минуты, 55 секунд (29.05.2012 - 11:57) irina1104 написал(а):
В списке приписано так:
<a name="id"><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a></a>
А в элементе обратный переход так
<a #id href="<?=$arResult["SECTION"]["SECTION_PAGE_URL"]?>"><?=GetMessage("C ATALOG_BACK")?></a>
все равно не переходит???

Спустя 9 минут, 52 секунды (29.05.2012 - 12:07) Игорь_Vasinsky написал(а):
Цитата
<a #id

WTF ?? вы основы html не знаете?

Спустя 12 минут, 38 секунд (29.05.2012 - 12:19) irina1104 написал(а):
Я прописал так
<a href="#id "><?=GetMessage("CATALOG_BACK")?></a>
Он вообще перестал переходить.

Спустя 2 минуты (29.05.2012 - 12:21) Игорь_Vasinsky написал(а):
#hash - дописывается в конец url

Спустя 1 минута, 36 секунд (29.05.2012 - 12:23) irina1104 написал(а):
Я прописала
<a href="<?=$arResult["SECTION"]["SECTION_PAGE_URL"]?>#id"><?=GetMessage(&quo t;CATALOG_BACK")?></a>
Только он все равно не переходит. В раздел переходит а на позицию нет

Спустя 15 минут, 4 секунды (29.05.2012 - 12:38) Игорь_Vasinsky написал(а):
у вас вообще якоря в контексте (не в ссылках) - генерируются?

Спустя 3 минуты, 47 секунд (29.05.2012 - 12:42) irina1104 написал(а):
Исходный код на странице раздела
<div class="catalog-item-desc">
<div
id="id" class="catalog-item-title"><a name="id"><a href="/catalog/?SECTION_ID=1001709&ELEMENT_ID=3093829">Картридж д/этикетпистолета BLITZ 28353</a></a>

Исходный код на странице элемента
<a href="/catalog/?SECTION_ID=1001709#id">Перейти в раздел</a>


Спустя 7 минут, 50 секунд (29.05.2012 - 12:50) Игорь_Vasinsky написал(а):
#id - вы буквально поняли))) тут должен формироваться уникальный ID из БД (например вот ELEMENT_ID=3093829 - это оно 3093829)

и в самом каталоге (или где там) - должно формироваться
<a name="3093829">... товар</a>

Спустя 7 минут, 38 секунд (29.05.2012 - 12:57) irina1104 написал(а):
а вот как его уникальный то указать?
если все элементы описаны ELEMENT_ID

Спустя 1 минута, 43 секунды (29.05.2012 - 12:59) Игорь_Vasinsky написал(а):
ELEMENT_ID - это вы формируете url, а 3093829 - вы получаете из БД, в цикле при формировании общей картины каталога.

Спустя 4 минуты, 11 секунд (29.05.2012 - 13:03) irina1104 написал(а):
Где тут это цикл:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
if (5>0):?>
<script
type="text/javascript">

function
picture(u){

window.open(u, "newwindow", config="width=500, height=500, toolbar=0, location=0, directories=0, status=1, menubar=0, scrollbars=0, resizable=0,left=400,top=300");

}


</script>
<?
endif;?>

<script>
function
img_animate(imageToFlyId, l, t, timeout)
{
var imageElement = document.getElementById(imageToFlyId);
var imageToFly = $(imageElement);
var position = imageToFly.position();
var flyImage = imageToFly.clone().insertBefore(imageToFly);

flyImage.css({ "position": "absolute", "left": position.left, "top": position.top });
flyImage.animate({ width: 0, height: 0, left: l, top: t}, timeout, 'linear');

function myfunc(id)
{
imageElement = document.getElementById(id);
imageElement.parentNode ? imageElement.parentNode.removeChild(imageElement) : imageElement;
}

setTimeout(function() {myfunc(imageToFlyId)}, timeout);

return false;
}
</script>


<script>

$(document).ready(function(){

$('.submit').click(function(){
var art = this.id.replace("sub_","");
var qty = $("#qty"+"_"+art).val();

$.ajax({
type: "POST",
url: window.location.href,
data: "qty="+qty+"&id="+art+"&action=ADD2BASKET",
dataType: "html",
async: true,
success: function(out){
try {
$("#basket").html(getBasketHTML(out));
alert("Товар добавлен в корзину");
}
catch(e) {alert(e.toString);}

}
}
);
return false;
});

});
</script>

<?

if (count($arResult['ITEMS']) < 1)
return;
?>
<div
class="secDesc">

<?=
$arResult['DESCRIPTION'];?>
</div>

<div
class="catalog-item-list">
<?

foreach ($arResult['ITEMS'] as $key => $arElement):

$this->AddEditAction($arElement['ID'], $arElement['EDIT_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arElement['ID'], $arElement['DELETE_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CATALOG_ELEMENT_DELETE_CONFIRM')));


$bHasPicture = is_array($arElement['PREVIEW_IMG']);

$sticker = "";
if (array_key_exists("PROPERTIES", $arElement) && is_array($arElement["PROPERTIES"]))
{
foreach (Array("SPECIALOFFER", "NEWPRODUCT", "SALELEADER") as $propertyCode)
if (array_key_exists($propertyCode, $arElement["PROPERTIES"]) && intval($arElement["PROPERTIES"][$propertyCode]["PROPERTY_VALUE_ID"]) > 0)
$sticker .= " <span class=\"sticker\">".$arElement["PROPERTIES"][$propertyCode]["NAME"]."</span>";

}

?>



<div
class="catalog-item<?if (!$bHasPicture):?> no-picture-mode<?endif;?>" id="<?=$this->GetEditAreaId($arElement['ID']);?>">
<div
class="catalog-item-info">

<?
if($bHasPicture):?>
<div
class="catalog-item-image">

<a
href="javascript:picture('<?=$arElement["DETAIL_PICTURE"]["SRC"]?>')">

<img
src="<?=$arElement["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arElement["PREVIEW_IMG"]["WIDTH"]?>" height="<?=$arElement["PREVIEW_IMG"]["HEIGHT"]?>" alt="<?=$arElement["NAME"]?>" title="<?=$arElement["NAME"]?>" id="catalog_list_image_<?=$arElement['ID']?>" /></a>
</div>


<?
endif;?>





<div
class="catalog-item-desc">
<div
class="catalog-item-title"><a name="ELEMENT_ID"><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a></a></br>



<?
foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<?=
$arProperty["NAME"]?><?
if(is_array($arProperty["DISPLAY_VALUE"]))
echo implode(" / ", $arProperty["DISPLAY_VALUE"]);
else
echo $arProperty["DISPLAY_VALUE"];?><br />
<?
endforeach?>

<?
if( in_array(1,CUser::GetUserGroup(CUser::GetID()))||in_array(7,CUser::GetUserGroup(CUser::GetID())) )
{?>
<?
echo GetMessage("CATALOG_QUANTITY1")?> <?=$arElement[CATALOG_QUANTITY];?>  <?echo GetMessage("CATALOG_QUANTITY2")?>

<?
}
?>

<?
foreach($arElement["PRICES"] as $code=>$arPrice):
if($arPrice["CAN_ACCESS"]):
?><div class="<?echo ($code=="zena"?"catalog-item-price777":"catalog-item-price");?>">

<?=
$arResult["PRICES"][$code]["TITLE"];?>:   <?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
<span
class="catalog-item-price"><?=$arPrice["PRINT_DISCOUNT_VALUE"]?></span> <s><?=$arPrice["PRINT_VALUE"]?></s>
<?
else:?>
<span
class="catalog-item-price"><?=$arPrice["PRINT_VALUE"]?></span>
<?
endif;?>
</div>
<?

endif;
endforeach;
?>
</div>



</div></div>



<div
class="catalog-item-links">
<!--noindex-->

<?if ($arElement['CAN_BUY']):?>
<p
align="left">

<?=
GetMessage("CATALOG_QUANTITY") ?> <input type="text" id='qty_<?=$arElement["ID"];?>' name="qty" value=1 size=3>
<input
type="hidden" name="id" value="<?echo $arElement["ID"]?>">
<input
id='sub_<?echo $arElement["ID"]?>' class='submit' type="submit" value="<?echo GetMessage("CATALOG_ADD")?>">

</p>
<?
endif;?></br></br></br>
<?
if($arParams["DISPLAY_COMPARE"]):?>
<a
href="<?echo $arElement["COMPARE_URL"]?>" class="catalog-item-compare" onclick="return addToCompare(this, '<?=GetMessage("CATALOG_IN_COMPARE")?>');" rel="nofollow" id="catalog_add2compare_link_<?=$arElement['ID']?>"><?echo GetMessage("CATALOG_COMPARE")?></a>
<?
endif;?>
<!--noindex-->
</div>
</div>

<div
class="catalog-item-separator"></div>
<?
endforeach;?>
</div>


<?
if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
<?=
$arResult["NAV_STRING"];?>
<?
endif;?>

???

Спустя 6 минут, 35 секунд (29.05.2012 - 13:10) Игорь_Vasinsky написал(а):
с этим не возможно работать. это простыня.

цикл вот

foreach

Спустя 2 минуты, 20 секунд (29.05.2012 - 13:12) irina1104 написал(а):
Игорь_Vasinsky
"с этим не возможно работать. это простыня."
ЧТО ВЫ ИМЕЛИ ВВИДУ?

Спустя 2 минуты, 32 секунды (29.05.2012 - 13:15) Kuliev написал(а):
Цитата (irina1104 @ 29.05.2012 - 14:12)
Игорь_Vasinsky
"с этим не возможно работать. это простыня."
ЧТО ВЫ ИМЕЛИ ВВИДУ?

Скорей всего... Портянку которую Вы выложили!

Спустя 1 минута, 7 секунд (29.05.2012 - 13:16) Игорь_Vasinsky написал(а):
что ваш код не читабелен. всё расбросано по страницам с произвольными отступами как по горизонтали - так и по вертикали - глаза теряются и сложно уловить логику скрипта и найти нужное место.

Спустя 47 секунд (29.05.2012 - 13:17) irina1104 написал(а):
Я выложила все код, чтоб понятней было.

Спустя 52 секунды (29.05.2012 - 13:17) Kuliev написал(а):

Спустя 2 минуты (29.05.2012 - 13:19) irina1104 написал(а):
А что не так то указано в якоре?

Спустя 2 минуты, 8 секунд (29.05.2012 - 13:22) Игорь_Vasinsky написал(а):
его вообще не указано в каталоге и один якорь на все ссылки - #id я же пару раз об этом писал вам.

Спустя 1 минута, 53 секунды (29.05.2012 - 13:23) irina1104 написал(а):
<?
foreach ($arResult['ITEMS'] as $key => $arElement):
$this->AddEditAction($arElement['ID'], $arElement['EDIT_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arElement['ID'], $arElement['DELETE_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CATALOG_ELEMENT_DELETE_CONFIRM')));
$bHasPicture = is_array($arElement['PREVIEW_IMG']);

$sticker = "";
if (array_key_exists("PROPERTIES", $arElement) && is_array($arElement["PROPERTIES"]))
{
foreach (Array("SPECIALOFFER", "NEWPRODUCT", "SALELEADER") as $propertyCode)
if (array_key_exists($propertyCode, $arElement["PROPERTIES"]) && intval($arElement["PROPERTIES"][$propertyCode]["PROPERTY_VALUE_ID"]) > 0)
$sticker .= " <span class=\"sticker\">".$arElement["PROPERTIES"][$propertyCode]["NAME"]."</span>";

}

?>

Это я поняла что цикл.
А вот это вывод эементов раздела:

<div class="catalog-item<?if (!$bHasPicture):?> no-picture-mode<?endif;?>" id="<?=$this->GetEditAreaId($arElement['ID']);?>">
<div
class="catalog-item-info">

<?
if($bHasPicture):?>
<div
class="catalog-item-image">

<a
href="javascript:picture('<?=$arElement["DETAIL_PICTURE"]["SRC"]?>')">

<img
src="<?=$arElement["DETAIL_PICTURE"]["SRC"]?>" width="<?=$arElement["PREVIEW_IMG"]["WIDTH"]?>" height="<?=$arElement["PREVIEW_IMG"]["HEIGHT"]?>" alt="<?=$arElement["NAME"]?>" title="<?=$arElement["NAME"]?>" id="catalog_list_image_<?=$arElement['ID']?>" /></a>
</div>



Спустя 51 секунда (29.05.2012 - 13:24) irina1104 написал(а):
Сам переход прописан в другом файле.

Спустя 34 секунды (29.05.2012 - 13:25) irina1104 написал(а):
Вот так прописан
<a href="<?=$arResult["SECTION"]["SECTION_PAGE_URL"]?>#ELEMENT_ID"><?=GetMessage("CATALOG_BACK")?></a>

Спустя 2 минуты, 5 секунд (29.05.2012 - 13:27) Игорь_Vasinsky написал(а):
ELEMENT_ID - это не то. я уже тоже писал.

Спустя 1 минута, 18 секунд (29.05.2012 - 13:28) irina1104 написал(а):
Я уже поняла это я просто не могу понять что мне написать чтоб работало. Так как я в этом деле новичок

Спустя 6 минут, 29 секунд (29.05.2012 - 13:35) Игорь_Vasinsky написал(а):
это задача не для новичков.

Спустя 4 минуты, 3 секунды (29.05.2012 - 13:39) irina1104 написал(а):
Я уже поняла в за деньги можно решить эту задачу?

Спустя 1 минута, 35 секунд (29.05.2012 - 13:40) Игорь_Vasinsky написал(а):
наверника. создайте тему в разделе ПРОЕКТЫ - укажите ТЗ, сроки и бюджет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.