Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Частичная перезагрузка страницы
 
 автор: Sfinks   (25.08.2005 в 21:00)   письмо автору
 
 

Добрый вечер, дорогие товарищи!
....ой, я чет не туда =))

Такой вопросик.... Имеется мини-чатик.... скриншот в аттаче.
В верхней половине экрана сообщения, внизу форма отправки.
Сейчас это одним фреймом, перезагружается вся страница, при большом количестве сообщений, прокручивается страница тоже целиком.

А хочется сделать так....
1. Форма всегда внизц, прокручивается только текст.
2. При отправке сообщения перезагружается только верхний фрейм, а фрейм с формой только очищается. Но именно при отправке, а не по таймеру.
3. Можно добавить кнопку обновления фрейма сообщений, хотя не обязательно, т.к. при отправке пустого POST'а оно и так обновляется.

Возможно?

   
 
 автор: Евгений Петров   (25.08.2005 в 21:06)   письмо автору
 
   для: Sfinks   (25.08.2005 в 21:00)
 

Конечно возможно, а в чем проблема?

   
 
 автор: Sfinks   (25.08.2005 в 21:13)   письмо автору
 
   для: Евгений Петров   (25.08.2005 в 21:06)
 

Проблема?... Хм... В том, что не знаю как! =))

Лан, для особо внимательных, переформулирую вопрос:
"Не подскажите ли, как ето сделать? Желательно в подробностях (с фрагментом кода). Буду очень признателен". =))

   
 
 автор: Евгений Петров   (25.08.2005 в 21:20)   письмо автору
 
   для: Sfinks   (25.08.2005 в 21:13)
 

Ну смотри у тебя страница с фреймами <frameset>...</frameset> и как я понял ты её же и перегружаешь вследствие чего у тебя перегружаются два фрема (сообщения и форма). А ты перегружай только тот фрейм, который у тебя сообщения выводит. Т.е. в самой странице код, который будет саму себя перегружать.

   
 
 автор: Sfinks   (25.08.2005 в 21:46)   письмо автору
 
   для: Евгений Петров   (25.08.2005 в 21:20)
 

Нет, сейчас оно не фреймами, но допустим фреймами.....

chat.html.....
<frameset rows="85%,15%">
  <frame src="chat.php" name="chat" scrolling="AUTO" noresize>
  <frame src="form.html" name="form" scrolling="NO" noresize>
</frameset>

chat.php....
// принимает POST, сохраняет на диск и выводит на экран.

form.html.....
<form enctype="multipart/form-data" action=chat.php method=post>
  <table align=center border=1 height=100% width=100%>
    <tr height=15%>
      <td align=center colspan=2>&#206;&#242;&#239;&#240;&#224;&#226;&#232;&#242;&#252; &#242;&#229;&#234;&#241;&#242;:<br>
        <textarea name="txt" rows=5 cols=100></textarea>
      </td>
    </tr>
    <tr height=5%>
      <td width=80% align=center>&#207;&#240;&#232;&#234;&#240;&#229;&#239;&#232;&#242;&#252; &#244;&#224;&#233;&#235;:&nbsp;<input size=80 type=file name=fl></td>
      <td align=center><input type=submit value=&#206;&#242;&#239;&#240;&#224;&#226;&#232;&#242;&#252;></td>
    </tr>
  </table>
</form>


.....что исправить?......

   
 
 автор: Евгений Петров   (25.08.2005 в 21:53)   письмо автору
 
   для: Sfinks   (25.08.2005 в 21:46)
 

chat.php должен обновлятся каждые n секунд, например так setTimeOut("location='chat.php'",3000)

   
 
 автор: Sfinks   (25.08.2005 в 22:02)   письмо автору
 
   для: Евгений Петров   (25.08.2005 в 21:53)
 

Цитирую себя.....
> 2. При отправке сообщения перезагружается только верхний фрейм, а фрейм с формой только очищается. Но именно при отправке, а не по таймеру.

   
 
 автор: Евгений Петров   (25.08.2005 в 22:11)   письмо автору
 
   для: Sfinks   (25.08.2005 в 22:02)
 

Нет ну окно с сообщениями должно обновлятся само по себе. Ведь если я не буду ничего писать долго, то я не увижу новых сообщений. А при отправке тоже окно обновляется. Просто форма отправки должна следующим образом выглядеть:

<form action="chat.php" target="chat" method="post" name="sendform">

   
 
 автор: Sfinks   (25.08.2005 в 22:27)   письмо автору
 
   для: Евгений Петров   (25.08.2005 в 22:11)
 

Нет, постоянно обновлять не надо, т.к. этот мини чат - замена аське для человека (моего собеседника), у которого повременная оплата (м)инета ( =)) ).... Т.е. подключил, проверил, отключил. А, с учетом того, что нас там двое, проверять приходится 10-15 раза в день. Просто хочется сделать удобнее (приянее на глаз) себе. Но "target", судя по всему - это решение. Я просто не знал, что в <form> его тоже можно использовать.... Думал тока в <a href="">. Спасибо.

   
 
 автор: Евгений Петров   (25.08.2005 в 22:33)   письмо автору
 
   для: Sfinks   (25.08.2005 в 22:27)
 

А вообще можно новые сообщения дописывать в чат. Поищи в поиске набери "Евгений Петров добавление сообщений" Я как то спрашивал уже.

   
 
 автор: Sfinks   (26.08.2005 в 01:36)   письмо автору
 
   для: Евгений Петров   (25.08.2005 в 22:11)
 

Да, с target'ом работает.... Единственное, после отправки форма не очищается.... Можно ето как-то совместить?

   
 
 автор: Евгений Петров   (26.08.2005 в 01:50)   письмо автору
 
   для: Sfinks   (26.08.2005 в 01:36)
 

Да можно:

<form enctype="multipart/form-data" target="chat" action=chat.php method=post  name="sendform" onSubmit=this.txt.value = ""; sendform.submit();>
...
</form>

   
 
 автор: Sfinks   (26.08.2005 в 02:01)   письмо автору
 
   для: Евгений Петров   (26.08.2005 в 01:50)
 

Пасиб =))
Се.... пшел спа....

   
 
 автор: Sfinks   (26.08.2005 в 11:01)   письмо автору
 
   для: Евгений Петров   (26.08.2005 в 01:50)
 

Млин, так не работает =((
txt очищается перед отправкой, в результате к сообщениям ничего не добавляется.

   
 
 автор: Agronom   (26.08.2005 в 12:15)   письмо автору
 
   для: Sfinks   (26.08.2005 в 11:01)
 

Господа! Извините что в клиниваюсь в разговор. Но я тоже пробовал писать чат. И сталкнулся с такой проблемой.
В центральном фрейме с сообщениями идет обновление каждую 1 секунду и при обновлении браузер в частности IE "щелкает" издает характерный звук. Конечно это можно отрубить, но не каждый пользователь догадается и надоедает страшно. Вот можно задать в скрипте чтобы при обновлении он не "щелкал"

Sfinks, я может не понял, а зачем обновлять страницу с формой для ввода сообщения автоматически. Можно же ввести текст, отправить - в этом же фрейме грузится скрипт, который записывает данные в базы или фаил и после этого загружает страницу формы.

   
 
 автор: Sfinks   (26.08.2005 в 14:07)   письмо автору
 
   для: Agronom   (26.08.2005 в 12:15)
 

>Sfinks, я может не понял, а зачем обновлять страницу с
>формой для ввода сообщения автоматически. Можно же ввести
>текст, отправить - в этом же фрейме грузится скрипт, который
>записывает данные в базы или фаил и после этого загружает
>страницу формы.

Так можно сделать, если фрейм с сообщениями обновляется по таймеру... Тада да - фрейм с формой ввода, он же и обработчик, а фрейм с сообщениями тока периодически перечитывает данные.
У меня задача другая: Сообщения обновляются не по таймеру, а по требованию. Поэтому такой вариант неприемлим. Обработчиком ввода приходится делать фрейм с сообщениями. А фрейм с формой только передавать в него данные. Все работает, кроме одного.... После нажатия кнопки отправить, форма не очищается..... ЭТО ПЛОХО!!!

   
 
 автор: Agronom   (26.08.2005 в 20:55)   письмо автору
 
   для: Sfinks   (26.08.2005 в 14:07)
 

Получается при нажатии клавиши "отправить" обновляется фрейм с сообщениями.
Тогда надо прекрутить чтобы обновлялся фрейм и с формой, а что если обновлять все полностью?

   
 
 автор: Sfinks   (26.08.2005 в 22:10)   письмо автору
 
   для: Agronom   (26.08.2005 в 20:55)
 

[url][b][b]КАК???????!!!!!!!!!!!!!!!!![/b][/b][/url]

   
 
 автор: Евгений Петров   (27.08.2005 в 15:41)   письмо автору
 
   для: Sfinks   (26.08.2005 в 11:01)
 

Да я прогнал: надо написать функцию:

<form action="..." target="..." onSubmit() = "return 0; ClearTxt();">
function ClearTxt()
{
  myform.txt.value = "";
  myform.submit();
}

   
 
 автор: Sfinks   (28.08.2005 в 09:42)   письмо автору
 
   для: Евгений Петров   (27.08.2005 в 15:41)
 

Млин, всерн не работает =((
Я все прально сделал?... Фрагмент:
<html>
<head>
<script language="JavaScript">
function ClearTxt()
{
  myform.txt.value = "";
  myform.submit();
}
</script>
</head>

<body>
<form enctype="multipart/form-data" target="chat" action="chat.php" method="post" name="myform" onSubmit() = "return 0; ClearTxt();">
...........................
</form>
</body>
</html>

Текст добавляется, но ниче не очищается =(

   
 
 автор: Евгений Петров   (28.08.2005 в 14:19)   письмо автору
 
   для: Sfinks   (28.08.2005 в 09:42)
 

А попробуй так:
<html>
<head>
<script language="JavaScript">
function ClearTxt()
{
  myform.txt.innerHTML = "";
  myform.submit();
}
</script>
</head>

<body>
<form enctype="multipart/form-data" target="chat" action="chat.php" method="post" name="myform" onSubmit() = "ClearTxt(); return false;">
...........................
</form>
</body>
</html>

   
 
 автор: Евгений Петров   (12.09.2005 в 17:27)   письмо автору
 
   для: Евгений Петров   (28.08.2005 в 14:19)
 

Вот так работает:
<html>
<head>
<script language="JavaScript">
function ClearTxt()
{
  myform.submit();
  document.myform.reset();
}
</script>
</head>

<body>
<form enctype="multipart/form-data" target="chat" action="chat.php" method="post" name="myform" onSubmit() = "ClearTxt(); return false;">
<textarea name="txt"></textarea>
...
</form>
</body>
</html>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования