|
|
|
| После добавления комментария нужно пролистать страницу в то место, где начинаются комментарии.
В хтмл вставляю жабоскрипт
<title>Документ без названия</title>
<script type="text/javascript">
function showIt(elID)
{
var el = document.getElementById(elID);
el.scrollIntoView(true);
}
</script>
</head>
<body>
.......
|
Сюда должно пролистать после добавления
$goods .= "<b>Комментарии:</b><div id='pToShow'></div>";
|
Обработчик со сбросом ПОСТ
........
header("location: ".DOMEN."/gallery/category/".$_GET['id']."/commodity/".$_GET['id_category']."");
|
Форма добавления
$goods .= "<div style='margin-top:3px'>Введите имя:<br /><input class='form_z' size='50' name='comm_name' id='comm_name' type='text' value='".$comm_name."'/></div>";
$goods .= "<div style='margin-top:3px'>Введите E-mail:<br /><input class='form_z' size='50' name='comm_email' type='text' value='".$comm_email."'/></div>";
$goods .= "<div style='margin-top:3px'>Введите сообщение:<br /><textarea class='form_z' name='comm_text' cols='40' rows='5'>".$comm_text."</textarea></div>";
$goods .= "<div style='margin-top:3px'><input onclick='submit();showIt('pToShow');' name='add' type='image' src='".DOMEN."/images/add.gif' title='Добавить комментарий' /></div>";
|
Такой ход неверен, пролистывание происходит до добавления, как сделать верно, что за чем? Буду благодарен за помощь. | |
|
|
|
|
|
|
|
для: TetRiska
(08.09.2009 в 00:59)
| | есть предложения? | |
|
|
|
|
|
|
|
для: TetRiska
(08.09.2009 в 00:59)
| |
$goods .= "<b>Комментарии:</b><div id='pToShow'><a name="coments"></a></div>";
|
header("location: ".DOMEN."/gallery/category/".$_GET['id']."/commodity/".$_GET['id_category']."#coments");
|
| |
|
|
|
|
|
|
|
для: Lelik
(08.09.2009 в 14:10)
| | Срабатывает спасибо, но:
1 -
$goods .= "<div style='margin-top:3px'><input onclick='submit(); showIt('pToShow');' name='add' type='image' src='".DOMEN."/images/add.gif' title='Добавить комментарий' /></div>";
| здесь ошибка в ИЕ
Webpage error details
Message: Syntax error
Line: 183
Char: 1
Code: 0
URI: http://10.100.20.227/gallery/category/16/commodity/60
|
2 - не хотелось бы, чтобы в конец дописывало #coments, можно ли обойтись? | |
|
|
|
|
|
|
|
для: TetRiska
(09.09.2009 в 01:05)
| | 1.
onclick='submit(); showIt('pToShow');' - не правильно
onclick=\"submit(); showIt('pToShow');\" - правильно
|
2. Можно. Алгоритм такой: ищем по айди блок, в котором находятся комментарии, вычисляем его координаты от левого верхнего угла страницы, прокручиваем на полученную высоту | |
|
|
|
|
|
|
|
для: Lelik
(09.09.2009 в 01:29)
| | допустим блок остался такой же:
$goods .= "<b>Комментарии:</b><div id='pToShow'></div>";
|
вот ф-ция написана в темах выше вами же:
function getAbsoluteCoords(oElement){
var oResult = {
iTop : 0,
iLeft : 0
};
while(oElement) {
oResult.iTop += oElement.offsetTop;
oResult.iLeft += oElement.offsetLeft;
oElement = oElement.offsetParent;
}
return oResult;
}
|
Диву назначить на событие getAbsoluteCoords(this).iTop или как? И как прокрутить после того как узнали координату? | |
|
|
|
|
|
|
|
для: TetRiska
(09.09.2009 в 02:15)
| | примерно так:
function Func() {
var oElem = document.getElementById('pToShow');
var oCoords = getAbsoluteCoords(oElem);
if( !isIe() )
scrollTo( 0, oCoords.iTop );
else
document.body.scrollTop = oCoords.iTop+'px';
}
|
проверку на ИЕ или не ИЕ надо написать самому, я для упрощения написал вызов функции isIe() | |
|
|
|
|
|
|
|
для: Lelik
(09.09.2009 в 03:46)
| | ф-цию Func() повесить на кнопку добавления? испробовал - не работает, или я не так понял и сделал?
>проверку на ИЕ или не ИЕ
можно поподробней? | |
|
|
|
|
|
|
|
для: TetRiska
(09.09.2009 в 18:02)
| |
function isIe() {
if( document.all && !self.opera )
return true;
else
return false;
}
|
| |
|
|
|
|
|
|
|
для: Lelik
(09.09.2009 в 20:09)
| | это как я понял будет происходить при загрузке страницы, что не всегда нужно...нужно один раз после нажатия клавиши добавить...или я не так понял? | |
|
|
|
|
|
|
|
для: TetRiska
(10.09.2009 в 15:49)
| | ну так в чем проблема сделать после нажатия кнопки "добавить" происходило нужное действие? а сделать можно и нужно так, как это тебе более подходит ;) | |
|
|
|
|
|
|
|
для: Lelik
(10.09.2009 в 17:04)
| | Выдает ошибку:
Webpage error details
Message: Object expected
Line: 88
Char: 5
Code: 0
URI: http://10.100.20.227/js/default.js
|
Прописал так в default.js:
function isIe() {
if( document.all && !self.opera )
return true;
else
return false;
}
function Func() {
var oElem = document.getElementById('pToShow');
var oCoords = getAbsoluteCoords(oElem);
if( !isIe() )
scrollTo( 0, oCoords.iTop );
else
document.body.scrollTop = oCoords.iTop+'px';
}
|
В пхп:
$goods .= "<div style='margin-top:3px'><input onclick=\"submit(); Func();\" name='add' type='image' src='".DOMEN."/images/add.gif' title='Добавить комментарий' /></div>";
|
Что же не так? | |
|
|
|
|
|
|
|
для: TetRiska
(11.09.2009 в 00:53)
| | ну хотя бы то, что вот эта строчка var oElem = document.getElementById('pToShow'); ссылается на объект с id=pToShow, а у тебя его нету. | |
|
|
|
|
|
|
|
для: Lelik
(11.09.2009 в 01:03)
| |
$goods .= "<td align='left'><div id='pToShow'></div><b>Комментарии:</b>";
|
if(!empty($_SESSION['login']) && !empty($_POST['add_x']))
{
много букафф, запрос и тд...
header("location: ".DOMEN."/gallery/category/".$_GET['id']."/commodity/".$_GET['id_category']."");
}
|
$goods .= "<form action='' method='post' id='comm'>";
$goods .= "<div style='margin-bottom:5px'><b>Добавление комментария:</b></div>";
$goods .= "<div style='font-size:15px; color:gray'>".$comm_msg."</div>";
$goods .= "<div style='margin-top:3px'>Введите имя:<br /><input class='form_z' size='50' name='comm_name' id='comm_name' type='text' value='".$comm_name."'/></div>";
$goods .= "<div style='margin-top:3px'>Введите E-mail:<br /><input class='form_z' size='50' name='comm_email' type='text' value='".$comm_email."'/></div>";
$goods .= "<div style='margin-top:3px'>Введите сообщение:<br /><textarea class='form_z' name='comm_text' cols='40' rows='5'>".$comm_text."</textarea></div>";
$goods .= "<div style='margin-top:3px'><input onclick=\"submit(); Func();\" name='add' type='image' src='".DOMEN."/images/add.gif' title='Добавить комментарий' /></div>";
$goods .= "</form>";
|
Подключаемый скрипт:
function isIe() {
if( document.all && !self.opera )
return true;
else
return false;
}
function Func() {
var oElem = document.getElementById('pToShow');
var oCoords = getAbsoluteCoords(oElem);
if( !isIe() )
scrollTo( 0, oCoords.iTop );
else
document.body.scrollTop = oCoords.iTop+'px';
}
|
| |
|
|
|
|
|
|
|
для: TetRiska
(11.09.2009 в 02:19)
| | не срабатывает :( где допущено ошибку? | |
|
|
|
|
|
|
|
для: TetRiska
(13.09.2009 в 00:16)
| | вопрос еще не решен ( | |
|
|
|