Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос касаемо чатов и форумов
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Вопрос касаемо чатов и форумов

Страниц (2): [1] 2 »
 

1. Никола - 16 Июля, 2007 - 11:12:39 - перейти к сообщению
Всем доброго времени суток
Возник следующий вопросик:

Делаю чат -> в одном окне отображаются сообщения, в другом поле для ввода текста и в третьем отображаются ники пользователей которые в данный момент он-лайн

Так вот вопрос - как сделать чтоб при нажатии на ник - этот самый ник появлялся в поле ввода текста? - ну как в любом нормальном чате или форуме
2. EuGen - 16 Июля, 2007 - 12:55:00 - перейти к сообщению
а поконкретнее можно? что используете? как реализуете разделение окон? и т.п.
3. Никола - 16 Июля, 2007 - 13:24:13 - перейти к сообщению
окна через фремы

я слышал что можно на яве так сделать, но я в ней вообще неволоку - вот меня и интересует можно ли используя php это организовать
4. valenok - 16 Июля, 2007 - 14:06:01 - перейти к сообщению
http://phpfaq[dot]ru/na_tanke
Прочитайте. Сэкономит вам Очень много ресурсов сейчас и в будущем.

PHP:
скопировать код в буфер обмена
  1.  
  2. < span onclick="nick(this.innerHTML)" > One name < /span >
  3. nick (it) {
  4. parent.frames["input_frame"].getElemetnById('message') = it;
  5. }
  6.  

В общем - так
5. Никола - 16 Июля, 2007 - 15:01:20 - перейти к сообщению
valenok спасибо поюзаю
6. Никола - 08 Августа, 2007 - 02:01:04 - перейти к сообщению
1. хочю сделать чат, использую фремы (в одном отображаются сообщения, в другом пользователи он-лайн)

2. Хочю сделать так чтобы при нажатии на ник пользователя в окне он-лайн - его ник появлялся в окне чата в поле ввода текста - все мы видели как это происходит в любом нормальном чате

3. Нашел я скрипт подобный тому что мне нужен - но он работает не через фремы, а просто на одной страничке

вот этот скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <form name="my_form">
  4. <input type="text" name="my_text">
  5. <br>
  6. <?PHP
  7. $n='123';
  8. echo ("<a name='".$n."'my_link_1 href=javascript:; onClick=document.my_form.my_text.value=this.name;>my_link #1</a>");
  9. ?>
  10. </form>
  11.  




он работает отлично - я попытался его переделать под работу во фремах - разделил его и вот что получилось

основная страница

PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta name="GENERATOR" content="Microsoft FrontPage 3.0">
  6. </head>
  7.  
  8. <frameset cols="*,170">
  9.   <frame name="contents" target="main" src="chat.php">
  10.   <frame name="main" src="online.php">
  11.  
  12.   <noframes>
  13.   <body>
  14.  
  15. </frameset>
  16. </html>
  17.  


online.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $n='<br>123';
  4. echo ("<a name='".$n."'my_link_1 href=javascript:; onClick=document.my_form.my_text.value=this.name;>my_link #1</a>");
  5. ?>
  6.  


chat.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <form name="my_form">
  3. <input type="text" name="my_text">
  4. <br>
  5. </form>
  6.  



и теперь меня интерисует что в нем нужно подправить чтоб он работал через фремы?

7. valenok - 08 Августа, 2007 - 09:54:17 - перейти к сообщению
разберём предыдущий данный ответ и вариант в вашем коде

onClick=document.my_form.my_text .value=this.name
Что происходит при нажатии:
В этом документе, есть форма my_form, в этой форме есть поле my_text,
этомо полю установить значение
(значение эквивалентно значению атрибута name у тега a)

Почему не работает? Из за того что действия происходят В этом документе, а в соседнем фрейме находится совсем другой документ.

Рассмотрим предыдущий ответ
PHP:
скопировать код в буфер обмена
  1.  
  2.  < span onclick="nick(this.innerHTML)" > One name < /span >
  3. < script>
  4.  function nick (it) {
  5.  parent.frames["input_frame"].getElemetnById('message') = it;  
  6.  }
  7. </script>
  8.  

Что тут происходит при нажатии.
parent - родительский документ. Тоесть наш index.html содержит frameset в котором вписываются input_frame и users_frame
мы обращаемся к index.html и в нём спускаемся к frames["input_frame"]
в этом фрейме мы выбираем элемент поля message и записываем туда некое значение.
8. Никола - 08 Августа, 2007 - 15:11:18 - перейти к сообщению
valenok я наверно вообще тупой, сейчас стало попонятней, но чтото пока нереализуется, я пока попытаюсь всеже сообразить - как появятся конкретные вопросы обращюсь

спасибо
9. Никола - 09 Августа, 2007 - 04:05:42 - перейти к сообщению
Вот я снова с вопросами - как мне кажется стал понемногу понимать - сейчас на мой взгляд все правильно

есть сомнения только по поводу parent - вместо этого что вписывать?

и никак непойму вот это тут зачем
PHP:
скопировать код в буфер обмена
  1. <span onclick="nick(this.innerHTML)" > One name </span>


подскажи если я тебя еще не слишком достал - что неправельно делаю?

chat.php - это основная страница
PHP:
скопировать код в буфер обмена
  1. <html>
  2.  
  3. <head>
  4. <title></title>
  5. <meta name="GENERATOR" content="Microsoft FrontPage 3.0">
  6. </head>
  7.  
  8. <frameset cols="*,170">
  9.  
  10.   <frame name="input_frame" target="main" src="chat1.php">
  11.   <frame name="users_frame" src="online.php">
  12.  
  13. < span onclick="nick(this.innerHTML)" > One name </span>
  14. < script>
  15. function nick (it) {
  16. parent.frames["input_frame"].getElemetnById('message') = it;
  17. }
  18. </script>
  19. <noframes>
  20. <body>
  21.  
  22. </frameset>
  23. </html>


chat1.php
PHP:
скопировать код в буфер обмена
  1. <form name="my_form">
  2. <input type="text" name="my_text" value="">
  3. <br>
  4. </form>


online.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  $n='123';
  3.  echo ("<a name='".$n."'my_link_1 href=javascript:; onClick=input_frame.my_form.my_text.value=this.name;>my_link #1</a>");
  4.  ?>
10. valenok - 09 Августа, 2007 - 12:24:06 - перейти к сообщению
этот кусок
PHP:
скопировать код в буфер обмена
  1.  
  2.  < span onclick="nick(this.innerHTML)" > One name </span>  
  3.  < script>
  4.  function nick (it) {
  5.  parent.frames["input_frame"].getElemetnById('message') = it;
  6.  }
  7.  </script>
  8.  


должен находится в online.php


online.php
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.   $n='123';
  5.   echo "<span name='".$n."' onClick='naick(this.name)'>".$n."</span>"; ?>
  6.  < script>
  7.  function nick (it) {
  8.  parent.frames["input_frame"].getElemetnById('message') = it;
  9.  }
  10.  </script>
  11.   ?>
11. Никола - 20 Августа, 2007 - 14:57:46 - перейти к сообщению
valenok сделал вот так - все оказалось намного проще

PHP:
скопировать код в буфер обмена
  1.  <a href="javascript:;" onClick="top.frames['input_frame'].my_form.my_text.value+='вот и все';"> hfgh</a>  

12. Костэн - 05 Февраля, 2008 - 08:05:56 - перейти к сообщению
Вопрос к шарящим : на JavaScript'ах можно написать форум или чат ?
13. EuGen - 05 Февраля, 2008 - 09:38:50 - перейти к сообщению
На одном JavaScript не получится, потому что это технологии на стороне только клиента. Используя Ajax - можно.
14. Костэн - 05 Февраля, 2008 - 11:49:13 - перейти к сообщению
EuGen пишет:
На одном JavaScript не получится, потому что это технологии на стороне только клиента. Используя Ajax - можно.

Понятно, благодарю за ответ. А это сложный язык ?
15. EuGen - 05 Февраля, 2008 - 16:21:30 - перейти к сообщению
Вот, могу посоветовать:
http://forum[dot]webmasterschool[dot]ru/[dot][dot][dot]amp;id_theme=118

 

Powered by ExBB FM 1.0 RC1