Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переход к последнему сообщению, При первом открытии топика нужно переход 
:(
    Опции темы
recruit
Дата 29.1.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



У меня сообщения выбираются из базы данных.
При первом открытии топика нужно переходить сразу к последнему сообщению,
чтобы не прокручивать экран на 20 сообщений.
Т.е. при формировании списка сообщений в начало последнего сообщения нужно
поставить якорек и переходить на эту закладку. Как это сделать, подскажите?
спасибо
PM MAIL   Вверх
wsr
Дата 29.1.2006, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Узнаем сколько записей (сообщений) вернул нам запрос - mysql_num_rows.
Дальше делаем редирект header("Location : http://site/index.php#Количество записей")

Дальше в цыкле, при выводе (while или for) когда достигаешь последней записи пишешь там этот якорь. Т.е. <a name="Количество записей"></a>
И все.
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
recruit
Дата 30.1.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



нет, мне походу не так надо сделать!
Вот есть например страница http://forum.vingrad.ru/index.php?act=idx
при загрузке, чтоб не прокручивать, а мне сразу отображалась например "Статистика форума" вот эта часть документа.

Или это делать как вы говорите? но что то у меня не получилось. вот мой код подскажите пожалуйста

Код

echo ("<center><table border=0>");
for ($i = 0; $i < mssql_num_rows( $r ); ++$i)
    {

    $line = mssql_fetch_row($r);
    echo( "<tr><td>$line[0]</td><td>$line[1]</td><td>$line[2]</td><td>$line[3]</td></tr>");
    }


и куда header вставить?


PM MAIL   Вверх
recruit
Дата 30.1.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



у меня header не получается переделать, пишет ошибку

Warning: Cannot modify header information - headers already sent by (output started at D:\home\localhost\www\forum1\index1.php:177) in
PM MAIL   Вверх
AntonioBanderaz
Дата 30.1.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



дык ты его ставь перед выводом, тоесть проверка если удовлетворяет то посылаешь хедер, если нет то страницу


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
recruit
Дата 30.1.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



можешь пример привести, плиз. вот мой код.

Код

<?php


if (!isset($_POST["combobox"]))   //если мы не выбрали значение комбобокса то по умолчанию 

будет 20
$postcombobox=40;
 else
{
$postcombobox=$_POST["combobox"];   //иначе берем значение комбобокса которое выбрали
}
if ($postcombobox==10)$so='selected';else $so='';
if ($postcombobox==20)$st='selected';else $st='';
if ($postcombobox==30)$sh='selected';else $sh='';
if ($postcombobox==40)$sf='selected';else $sf='';





#================КОННЕКТИМСЯ К БАЗЕ И ЗАПУСКАЕМ ХП=================================
include 'inc.php';
$link = mssql_connect($s,$u,$p);  // $s-имя сервера, $u пользователь, $p пароль
mssql_select_db($db, $link);
$ID_forum=1;                          // входные параметры
$ID_ex=1;                               // входные параметры
$stmt=mssql_init("xxx",$link);           // вызываем хранимую
mssql_bind($stmt, "@ID_forum", $ID_forum, SQLINT1, false);   //передаем ей значение форума и 

упражнения
mssql_bind($stmt, "@ID_ex", $ID_ex, SQLINT1, false);
$result=mssql_execute($stmt);
mssql_next_result($result);
$arr = mssql_fetch_row($result);
$handle = $arr[0];                                     //записываем значение хандла
$rows = $arr[1];                    //записываем значение количества 

страниц
#================КОННЕКТИМСЯ К БАЗЕ И ЗАПУСКАЕМ ХП=================================



#================================ECHO============================================

#echo "$handle - handle<BR>";
#echo "$postcombobox - значение комбобокса которое передаем ПОСТОМ<BR>";
#echo "$rows - количество сообщений<BR>";

$a3=$rows/$postcombobox;                      //вычисляем количество страниц: кол-во 

сообщений делим на значение комбобокса
if (is_double($a3))                           //
{
$a3=$a3+1;
#echo (int)"$a3";
$a4=(int)$a3;
}


#================================ECHO============================================



#===============================TABLE============================================
echo <<<TT
<html>


<LINK href='files/main.css' type=text/css rel=stylesheet>
<script  language="JavaScript">



    n=25;
    setTimeGou=window.setInterval("f1()", 1000);

    function f1()  
   {
     document.getElementById("textIndikator").value=n;
     document.getElementById("textIndikator").innerHTML = n;
     document.getElementById("textIndikato").innerHTML = n;
      n--;
     if (n==0) 
     {clearInterval(setTimeGou);}


}

function fff(p)
{
flag=false;
re=/^([1-9])+([0-9])*$/;
x=p.match(re);
if(x) flag=true;
if(flag) document.form1.submit();
else alert("Неудача");
}
</script>





<table border=0 cellspacing=1 cellpadding=0 width=100%><tr bgcolor='#CCCCCC'>

<td valign=top>$a4 страница из <b>$a4</b></td>




<form name='form5' action='go1.php' method='POST'>
<td valign=top>
<input type='hidden' name='combobox' value='$postcombobox'>
<input type='hidden' name='firstpage' value='3'>
<input type='hidden' name='kolvostranic' value='$a4'>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='submit' value='|<-'>
</td>
</form>



<form name='form3' action='go1.php' method='POST'>
<td valign=top>
<input type='hidden' name='kolvostranic' value='$a4'>
<input type='hidden' name='combobox' value='$postcombobox'>
<input type='hidden' name='previous' value='2'>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='submit' value='<-'>
</td>
</form>



<form name='form1' action='go1.php' method='POST'>
<td valign=top>
<input type='hidden' name='r' value='$a3'>
<input type='hidden' name='kolvostranic' value='$a4'>
<input type='hidden' name='go' value='1'>
<input type='text' name='textbox' maxlength=4 cols=8 value='$a4'
onkeypress=return(!isNaN(String.fromCharCode(event.keyCode?event.keyCode:event.charCode)))>

<input type='hidden' name='combobox' value='$postcombobox'>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='button' value='go' onClick='(fff(textbox.value))'>
</td>
</form>

<form>
<td valign=top>
<button disabled>-></button>
</td>
</form>

<form>
<td valign=top>
<button disabled>->|</button>
</td>
</form>



<form name='form6' action='index1.php' method='POST'>
<td valign=top>
<b>Выводить по</b>
<SELECT NAME='combobox' TITLE='Select 1' SIZE=1>
<OPTION VALUE='10' $so>10 сообщений
<OPTION VALUE='20' $st>20 сообщений
<OPTION VALUE='30' $sh>30 сообщений
<OPTION VALUE='40' $sf>40 сообщений
</SELECT>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='submit' value='go'>
</td>

<td>Следущая страница доступна через
<div id='textIndikator'>25</div>  
</td>


</tr>
</table>
</form>
TT;
# -------------------------------------TABLE------------------------------------



# -------------------------------------SELECT------------------------------------



$r = mssql_query("SELECT     TOP 100 PERCENT *
FROM         (SELECT     TOP $postcombobox date_rep, ID_rep, Text_rep
                       FROM          dbo.messages
                       WHERE      (ID_forum = '$ID_forum') AND (ID_ex = '$ID_ex')
                       ORDER BY date_rep DESC) x
ORDER BY date_rep", $link);




echo ("<center><table border=0>");
for ($i = 0; $i < mssql_num_rows( $r ); ++$i)
     {
    $line = mssql_fetch_row($r);
    echo( "<tr><td>$line[0]</td><td>$line[1]</td><td>$line[2]</td><td>$line[3]</td></tr>");
    }




#===============================TABLE============================================


echo <<<TT
<html>



<table border=0 cellspacing=1 cellpadding=0 width=100%><tr bgcolor='#CCCCCC'>

<td valign=top>$a4 страница из <b>$a4</b></td>




<form name='form5' action='go1.php' method='POST'>
<td valign=top>
<input type='hidden' name='combobox' value='$postcombobox'>
<input type='hidden' name='firstpage' value='3'>
<input type='hidden' name='kolvostranic' value='$a4'>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='submit' value='|<-'>
</td>
</form>



<form name='form3' action='go1.php' method='POST'>
<td valign=top>
<input type='hidden' name='kolvostranic' value='$a4'>
<input type='hidden' name='combobox' value='$postcombobox'>
<input type='hidden' name='previous' value='2'>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='submit' value='<-'>
</td>
</form>



<form name='form1' action='go1.php' method='POST'>
<td valign=top>
<input type='hidden' name='r' value='$a3'>
<input type='hidden' name='kolvostranic' value='$a4'>
<input type='hidden' name='go' value='1'>
<input type='text' name='textbox' 

onkeypress=return(!isNaN(String.fromCharCode(event.keyCode?event.keyCode:event.charCode)))>

<input type='hidden' name='combobox' value='$postcombobox'>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='button' value='go' onClick='(fff(textbox.value))'>
</td>
</form>

<form>
<td valign=top>
<button disabled>-></button>
</td>
</form>

<form>
<td valign=top>
<button disabled>->|</button>
</td>
</form>



<form name='form6' action='index1.php' method='POST'>
<td valign=top>
<b>Выводить по</b>
<SELECT NAME='combobox' TITLE='Select 1' SIZE=1>
<OPTION VALUE='10' $so>10 сообщений
<OPTION VALUE='20' $st>20 сообщений
<OPTION VALUE='30' $sh>30 сообщений
<OPTION VALUE='40' $sf>40 сообщений
</SELECT>
<input type='hidden' name='ID_forum' value='$ID_forum'>
<input type='hidden' name='ID_ex' value='$ID_ex'>
<input type='submit' value='go'>
</td>

<td>Следущая страница доступна через
<div id='textIndikato'>25</div></td>


</tr>
</table>
</form>
TT;
# -------------------------------------TABLE------------------------------------





















?> 



PM MAIL   Вверх
wsr
Дата 30.1.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



В самом начале скрипта пишешь - ob_start();
А в самом конце - ob_end_flush()
Теперь можешь изменять хеадер в любом нужном тебе месте!
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
recruit
Дата 30.1.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



или я тупой или просто я не как не в вьеду. Скорее оба варианта.


Код

echo ("<center><table border=0>");
for ($i = 0; $i < mssql_num_rows( $r ); ++$i)
     {
    $line = mssql_fetch_row($r);
    echo( "<tr><td>$line[0]</td><td>$line[1]</td><td>$line[2]</td><td>$line[3]</td></tr>");
    }


$i - количество записей

Дальше в цыкле, при выводе (while или for) когда достигаешь последней записи пишешь там этот якорь. Т.е. <a name="Количество записей"></a>

а как узнать где именно последняя запись?
и хедер после echo выводить?
точно я тупой smile
PM MAIL   Вверх
wsr
Дата 30.1.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Последняя запись = mssql_num_rows( $r ) - 1;
Ну я же как говорил. Узнаешь сколько записей (ответов). Делаешь редирект на страницу header ("Location : site/#записей");
Можешь еще кукисы использовать для определения какой раз чел зашел на страничку.
Ну а дальше просто, если чел первый раз зашел, то выводишь текст и + <a name="записей"></a> иначе делаешь что тебе нужно.
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
recruit
Дата 30.1.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



Сделал все как вы говорите. Страница не грузится вообще ))


Код

$t=mssql_num_rows( $r )-1;
echo "$t";
header("Location:index1.php#'$t'");

echo ("<center><table border=0>");
for ($i = 0; $i < mssql_num_rows( $r ); ++$i)
     {
    $line = mssql_fetch_row($r);
    echo( "<tr><td>$line[0]</td>
               <td>$line[1]</td>
               <td>$line[2]</td>
               <td>$line[3]<a name=$i></a></td></tr>");
    }


Помогите исправить код и все, а то я сума сойду ).
PM MAIL   Вверх
Ciber SLasH
Дата 31.1.2006, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 1
Всего: 67



Не грузится, потому, что:
1) header должен посылаться до любого вывода в браузер, т.е. до любых команд (echo, print и им подобных)
2) заголовки должны отделяться пробелом после двоеточия, т.е. нуно писать "Location: index1.php#'$t'"
3) лучше в твоём случае, другого решения что-то в голову не лезит, на событие onLoad страницы, повесить такой код: location.hash = "<имя якоря, без знака решётки>"
Т.е. в PHP-скрипте, при выводе разметки, пропиши: <body onLoad='location.hash = "$t"'>
PM   Вверх
recruit
Дата 1.2.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.11.2005

Репутация: нет
Всего: нет



всем спасибо сделал
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.