|
|
|
| Добрый вечер, дорогие товарищи!
....ой, я чет не туда =))
Такой вопросик.... Имеется мини-чатик.... скриншот в аттаче.
В верхней половине экрана сообщения, внизу форма отправки.
Сейчас это одним фреймом, перезагружается вся страница, при большом количестве сообщений, прокручивается страница тоже целиком.
А хочется сделать так....
1. Форма всегда внизц, прокручивается только текст.
2. При отправке сообщения перезагружается только верхний фрейм, а фрейм с формой только очищается. Но именно при отправке, а не по таймеру.
3. Можно добавить кнопку обновления фрейма сообщений, хотя не обязательно, т.к. при отправке пустого POST'а оно и так обновляется.
Возможно? | |
|
|
|
|
|
|
|
для: Sfinks
(25.08.2005 в 21:00)
| | Конечно возможно, а в чем проблема? | |
|
|
|
|
|
|
|
для: Евгений Петров
(25.08.2005 в 21:06)
| | Проблема?... Хм... В том, что не знаю как! =))
Лан, для особо внимательных, переформулирую вопрос:
"Не подскажите ли, как ето сделать? Желательно в подробностях (с фрагментом кода). Буду очень признателен". =)) | |
|
|
|
|
|
|
|
для: Sfinks
(25.08.2005 в 21:13)
| | Ну смотри у тебя страница с фреймами <frameset>...</frameset> и как я понял ты её же и перегружаешь вследствие чего у тебя перегружаются два фрема (сообщения и форма). А ты перегружай только тот фрейм, который у тебя сообщения выводит. Т.е. в самой странице код, который будет саму себя перегружать. | |
|
|
|
|
|
|
|
для: Евгений Петров
(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>Îòïðàâèòü òåêñò:<br>
<textarea name="txt" rows=5 cols=100></textarea>
</td>
</tr>
<tr height=5%>
<td width=80% align=center>Ïðèêðåïèòü ôàéë: <input size=80 type=file name=fl></td>
<td align=center><input type=submit value=Îòïðàâèòü></td>
</tr>
</table>
</form>
|
.....что исправить?...... | |
|
|
|
|
|
|
|
для: Sfinks
(25.08.2005 в 21:46)
| | chat.php должен обновлятся каждые n секунд, например так setTimeOut("location='chat.php'",3000) | |
|
|
|
|
|
|
|
для: Евгений Петров
(25.08.2005 в 21:53)
| | Цитирую себя.....
> 2. При отправке сообщения перезагружается только верхний фрейм, а фрейм с формой только очищается. Но именно при отправке, а не по таймеру. | |
|
|
|
|
|
|
|
для: Sfinks
(25.08.2005 в 22:02)
| | Нет ну окно с сообщениями должно обновлятся само по себе. Ведь если я не буду ничего писать долго, то я не увижу новых сообщений. А при отправке тоже окно обновляется. Просто форма отправки должна следующим образом выглядеть:
<form action="chat.php" target="chat" method="post" name="sendform">
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(25.08.2005 в 22:11)
| | Нет, постоянно обновлять не надо, т.к. этот мини чат - замена аське для человека (моего собеседника), у которого повременная оплата (м)инета ( =)) ).... Т.е. подключил, проверил, отключил. А, с учетом того, что нас там двое, проверять приходится 10-15 раза в день. Просто хочется сделать удобнее (приянее на глаз) себе. Но "target", судя по всему - это решение. Я просто не знал, что в <form> его тоже можно использовать.... Думал тока в <a href="">. Спасибо. | |
|
|
|
|
|
|
|
для: Sfinks
(25.08.2005 в 22:27)
| | А вообще можно новые сообщения дописывать в чат. Поищи в поиске набери "Евгений Петров добавление сообщений" Я как то спрашивал уже. | |
|
|
|
|
|
|
|
для: Евгений Петров
(25.08.2005 в 22:11)
| | Да, с target'ом работает.... Единственное, после отправки форма не очищается.... Можно ето как-то совместить? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(26.08.2005 в 01:50)
| | Пасиб =))
Се.... пшел спа.... | |
|
|
|
|
|
|
|
для: Евгений Петров
(26.08.2005 в 01:50)
| | Млин, так не работает =((
txt очищается перед отправкой, в результате к сообщениям ничего не добавляется. | |
|
|
|
|
|
|
|
для: Sfinks
(26.08.2005 в 11:01)
| | Господа! Извините что в клиниваюсь в разговор. Но я тоже пробовал писать чат. И сталкнулся с такой проблемой.
В центральном фрейме с сообщениями идет обновление каждую 1 секунду и при обновлении браузер в частности IE "щелкает" издает характерный звук. Конечно это можно отрубить, но не каждый пользователь догадается и надоедает страшно. Вот можно задать в скрипте чтобы при обновлении он не "щелкал"
Sfinks, я может не понял, а зачем обновлять страницу с формой для ввода сообщения автоматически. Можно же ввести текст, отправить - в этом же фрейме грузится скрипт, который записывает данные в базы или фаил и после этого загружает страницу формы. | |
|
|
|
|
|
|
|
для: Agronom
(26.08.2005 в 12:15)
| | >Sfinks, я может не понял, а зачем обновлять страницу с
>формой для ввода сообщения автоматически. Можно же ввести
>текст, отправить - в этом же фрейме грузится скрипт, который
>записывает данные в базы или фаил и после этого загружает
>страницу формы.
Так можно сделать, если фрейм с сообщениями обновляется по таймеру... Тада да - фрейм с формой ввода, он же и обработчик, а фрейм с сообщениями тока периодически перечитывает данные.
У меня задача другая: Сообщения обновляются не по таймеру, а по требованию. Поэтому такой вариант неприемлим. Обработчиком ввода приходится делать фрейм с сообщениями. А фрейм с формой только передавать в него данные. Все работает, кроме одного.... После нажатия кнопки отправить, форма не очищается..... ЭТО ПЛОХО!!! | |
|
|
|
|
|
|
|
для: Sfinks
(26.08.2005 в 14:07)
| | Получается при нажатии клавиши "отправить" обновляется фрейм с сообщениями.
Тогда надо прекрутить чтобы обновлялся фрейм и с формой, а что если обновлять все полностью? | |
|
|
|
|
|
|
|
для: Agronom
(26.08.2005 в 20:55)
| |
[url][b][b]КАК???????!!!!!!!!!!!!!!!!![/b][/b][/url]
|
| |
|
|
|
|
|
|
|
для: Sfinks
(26.08.2005 в 11:01)
| | Да я прогнал: надо написать функцию:
<form action="..." target="..." onSubmit() = "return 0; ClearTxt();">
function ClearTxt()
{
myform.txt.value = "";
myform.submit();
}
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(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>
|
Текст добавляется, но ниче не очищается =( | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(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>
|
| |
|
|
|