Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> добавление смайликов, в сообщение 
:(
    Опции темы
sugee
Дата 1.8.2005, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Смайлики выведены таким вот образом:
<a href="gb.php?smile=2"><img src="smiles/2.gif"></img></a>
Что дальше с ними делать?
У меня были попытки типа
Код

$smiles=array("0.gif","1.gif","2.gif","3.gif","4.gif","5.gif","6.gif");
if(isset($smile)&&$smile!=="") {
for($j=0; $j<count($smiles); $j++) {
 if($smiles[$j]==$smile)
 $addsmile=$addsmile."<img src=".$smiles[j].".jpg></img>";
$wr=fopen($sm,"w");
flock($wr,2);
fwrite($wr, $addsmile);
flock($wr,3);

то есть записать сайлик в временный файл чтобы потом его оттуда прочитать и добавить к сообщению
Подозреваю что вопрос нужно задавать в форуме по JavaScript
PM MAIL   Вверх
PARROT
Дата 1.8.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



Код

function smile(num)
{
text=myform.mess.value;
myform.mess.value=text+num;
}

Вывод:
Код

<tr align=center>
<?
for($i=1;$i<=4;$i++)
{
?>
<td><img src='smile/<? echo"$i.gif"?>' onClick="smile('#<?=$i?>')" onMouseover="this.style.cursor='hand'" onMouseout="this.style.cursor=''"></td>
<?
}
?>
</tr>

Код

<Form name=myform.......
<TextArea id=txtmes name="mess"


Это сообщение отредактировал(а) PARROT - 1.8.2005, 16:46


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Bikutoru
Дата 1.8.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


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

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



Цитата
то есть записать сайлик в временный файл чтобы потом его оттуда прочитать и добавить к сообщению

Не очень понял смысла этого дела...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
sugee
Дата 1.8.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так что ли?
Код

<table><tr align=center>
<?
$smiles=array("0.gif","1.gif","2.gif","3.gif","4.gif","5.gif","6.gif");
for($i=0;$i<=count($smiles);$i++)
{
?>
<td><img src='smile/<? echo"$i.gif"?>' onClick="smile('#<?=$i?>')" onMouseover="this.style.cursor='hand'" onMouseout="this.style.cursor=''"></td>
<?
}
?>
</tr></table>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$f="./gb.txt";
$tmp="./gb_tmp.txt";

if($_POST['email']) {
$message=ereg_replace("\n", "<br>", $message);
if(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/",$email)) 
echo "<font color=red>Неверный E-mail адрес!</font>";
}
if($_POST['name']&&$_POST['message']) {
if(copy($f,$tmp)) {
$w=fopen($f,"w");
flock($w,2); 
fwrite($w,date("d.m.Y. H:i:s")."|".$email."|"." ".$name."|"." ".$message."\n");
$r=fopen($tmp,"r");
flock($r,1);
while($messages=fgets($r,1000)) fputs($w, $messages);
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink($tmp);
}
}
if(empty($page)) $page=1;
show($page);

function show($page) {
global $f;
$kol=$page*10;
$messages=explode('\n',implode('\n',file($f)));
echo "<table border=1><tr><td><table width=700 border=0>";
for($i=($page-1)*10; $i<count($messages); $i++) {
  if($i<$kol) {
$mess=explode("|",$messages[$i]);
list($date,$email,$name,$message)=$mess;

echo "<tr height=40><td background='BGF.jpg'><b>
<font color=#ffffff>Сообщение от ".$name." </font></b>
<br>&nbsp&nbsp<b>".$email."</b></td><td background='BGF.jpg'><b>".$date."</b></td></tr>
<tr><td width=100% height=100>".$message."</td></tr>";
  }
}
echo "</table></td></tr></table><br>";
echo "&nbsp&nbsp<a href=gb.php?page=1>1</a>";
if(count($messages)>10) echo "&nbsp&nbsp<a href=gb.php?page=2>2</a>";
if(count($messages)>20) echo "&nbsp&nbsp<a href=gb.php?page=3>3</a>";
}
?>
</body></html>


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


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



sugee, работает?.... значит так.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
sugee
Дата 1.8.2005, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет не работает, если бы работало я бы не спрашивал!
PM MAIL   Вверх
sugee
Дата 1.8.2005, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Самое интересное смайлики в цикле вообще не выводятся, хотя по идее должны
PM MAIL   Вверх
sugee
Дата 1.8.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А теперь самое интересное - вот этот код
Код

<html><body background=BGFON.jpg>
<script language="javascript">
function smile(num)
{
text=myform.message.value;
myform.message.value=text+" <img src="+num+".gif>";
}
</script>
<form name=myform action=gb.php METHOD=post><input type=text name=name>&nbsp<b>Имя</b><br>
<input type=text name=email>&nbsp<b>E-mail</b><br><br><b>Сообщение</b><br>
<textarea rows=8 cols=25 name=message></textarea><br><input type=submit value=добавить><br><br>
<table height=20><tr>
<td><img onclick=smile(0) src="smiles/0.gif"></img>&nbsp</td>
<td><img onclick=smile(1) src="smiles/1.gif"></img>&nbsp</td>
<td><img onclick=smile(2) src="smiles/2.gif"></img>&nbsp</td>
<td><img onclick=smile(3) src="smiles/3.gif"></img>&nbsp</td>
<td><img onclick=smile(4) src="smiles/4.gif"></img>&nbsp</td>
<td><img onclick=smile(5) src="smiles/5.gif"></img>&nbsp</td>
<td><img onclick=smile(6) src="smiles/6.gif"></img>&nbsp</td>
</tr></table>

в виде обычной статической html-страницы работает идеально
но если включить его в пхп-страницу, то JavaScript перестает
подавать какие либо признаки жизни, событие onclick не работает.

для полной ясности показываю полный код
Код

<html><body background=BGFON.jpg>
<script language="javascript">
function smile(num)
{
alert(num);
text=myform.message.value;
myform.message.value=text+" <img src="+num+".gif>";
}
</script>
<form name=myform action=gb.php METHOD=post><input type=text name=name>&nbsp<b>Имя</b><br>
<input type=text name=email>&nbsp<b>E-mail</b><br><br><b>Сообщение</b><br>
<textarea rows=8 cols=25 name=message></textarea><br><input type=submit value=добавить><br><br>
<table height=20><tr>
<td><img onClick=smile(0) src="smiles/0.gif"></img>&nbsp</td>
<td><img onClick=smile(1) src="smiles/1.gif"></img>&nbsp</td>
<td><img onClick=smile(2) src="smiles/2.gif"></img>&nbsp</td>
<td><img onClick=smile(3) src="smiles/3.gif"></img>&nbsp</td>
<td><img onClick=smile(4) src="smiles/4.gif"></img>&nbsp</td>
<td><img onClick=smile(5) src="smiles/5.gif"></img>&nbsp</td>
<td><img onClick=smile(6) src="smiles/6.gif"></img>&nbsp</td>
</tr></table>

<?
Error_Reporting(E_ALL & ~E_NOTICE);
$f="./gb.txt";
$tmp="./gb_tmp.txt";
if($_POST['email']) {
$message=ereg_replace("\n", "<br>", $message);
if(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/",$email)) 
echo "<font color=red>Неверный E-mail адрес!</font>";
}
if($_POST['name']&&$_POST['message']) {
if(copy($f,$tmp)) {
$w=fopen($f,"w");
flock($w,2); 
fwrite($w,date("d.m.Y. H:i:s")."|".$email."|"." ".$name."|"." ".$message."\n");
$r=fopen($tmp,"r");
flock($r,1);
while($messages=fgets($r,1000)) fputs($w, $messages);
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink($tmp);
}
}
if(empty($page)) $page=1;
show($page);

function show($page) {
global $f;
$kol=$page*10;
$messages=explode('\n',implode('\n',file($f)));
echo "<table border=1><tr><td><table width=700 border=0>";
for($i=($page-1)*10; $i<count($messages); $i++) {
  if($i<$kol) {
$mess=explode("|",$messages[$i]);
list($date,$email,$name,$message)=$mess;

echo "<tr height=40><td background='BGF.jpg'><b>
<font color=#ffffff>Сообщение от ".$name." </font></b>
<br>&nbsp&nbsp<b>".$email."</b></td><td background='BGF.jpg'><b>".$date."</b></td></tr>
<tr><td width=100% height=100>".$message."</td></tr>";
  }
}
echo "</table></td></tr></table><br>";
for($t=1; $t<10; $t++) {
 if(count($messages)>10*$t) echo "&nbsp&nbsp<a href=gb.php?page=$t>$t</a>";
  }
}

?>
</body></html>

PM MAIL   Вверх
R.M.
Дата 2.8.2005, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


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

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



sugee

У меня вот так всё работает:

Код

<script>
function AddSmile(smile)
{
document.form1.msg.value += smile;
}
</SCRIPT>

<form name=form1>
<img style="cursor: hand" onclick="AddSmile(':friday:')" src="img/smiles/friday.gif">
<textarea name=msg rows=10 cols=80></textarea>
</form>

Добавлено @ 02:47
а в пхп скрипте пишеш так
Код

$msg=eregi_replace(":friday:","<img src=img/friday.gif>",$msg);



--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
PARROT
Дата 2.8.2005, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



sugee, забыли:

<TextArea id=txtmes name="mess"

Потом смайлы должны лежать в папке smile, по номерам 1, 2, 3, 4, 5 и т.д. за счет чего они и выводятся в цикле.



Это сообщение отредактировал(а) PARROT - 2.8.2005, 10:20


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
sugee
Дата 2.8.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



с циклом все ясно - я просто перепутал имена папок (smiles и smile)
Но почему JS не работает!!!
Я попробовал оба варианта но дело в том что попытки вызвать
любую функцию JavaScript ни к чему не приводят.
Можно написать просто <body onclick="alert('что-нибудь')">
и щелкать до потери пульса, ничего не произойдет!
У меня Денвер, может это может что-то прояснить?
PM MAIL   Вверх
PARROT
Дата 2.8.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



Денвер тут ни при чем. У меня тоже денвер.
Попробуйте вставить этот код и проверить, должно работать.
Код

function smile(num)
{
text=myform.mess.value;
myform.mess.value=text+num;
}

Код

<html>
<head>
<script language=JavaScript src="anim.js"></SCRIPT>
</head>
<body>
<?
<table width=400 height=400 align=center height=210 style="border:1 solid blue;border-collapse:collapse">
<tr>
<?
for($i=1;$i<=4;$i++)
{
?>
<td><img src='smile/<? echo"$i.gif"?>' onClick="smile('#<?=$i?>')" onMouseover="this.style.cursor='hand'" onMouseout="this.style.cursor=''"></td>
<?
}
?>
</tr>
</table>
<Form name=myform Method="POST">
<table height=300 cellpadding="0" cellspacing="0">
<tr>
<td colspan=2 align=right><TextArea id=txtmes name="mess" rows=15 cols=36></TextArea></td>
</tr>
<tr>
<td colspan=2 style="padding-left:350" bgcolor=#C4CDEE><Input Type="submit" name=send Value="Добавить" style="cursor:hand">
</td>
</tr>
</Form>
</table>
</body>
</html>



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
sugee
Дата 2.8.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А какая собственно разница - яваскрипт в внешнем файле или в html-коде?
Я попробовал, все равно не работает.
PM MAIL   Вверх
PARROT
Дата 2.8.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



У меня работает этот код. smile
Покажите ваш код.

Это сообщение отредактировал(а) PARROT - 2.8.2005, 16:40


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
sugee
Дата 2.8.2005, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну например так
Код

<html>
<head>
<script language=JavaScript src="anim.js">
</SCRIPT>
</head>
<body>
<table width=300 height=40 align=center style="border:1 solid blue;border-collapse:collapse">
<tr>
<?
for($i=1;$i<=4;$i++)
{
?>
<td><img src='smiles/<? echo"$i.gif"?>' onClick="smile('#<?=$i?>')" onMouseover="this.style.cursor='hand'" onMouseout="this.style.cursor=''"></td>
<?
}
?>
</tr>
</table>
<Form  action=smileeck.php name=myform Method="POST">
<table height=300 cellpadding="0" cellspacing="0">
<tr><td align=center>
<input type=text name=name>&nbsp<b>Имя</b><br>
<input type=text name=email>&nbsp<b>E-mail</b><br>
</td></tr>
<tr>
<td colspan=2 align=right><TextArea id=txtmes name=mess rows=15 cols=36></TextArea></td>
</tr>
<tr>
<td colspan=2 style="padding-left:350" bgcolor=#C4CDEE><input type=submit name=send Value="Добавить" style="cursor:hand">
</td>
</tr>
</Form>
</table>

<?
Error_Reporting(E_ALL & ~E_NOTICE);
$f="./gb.txt";
$tmp="./gb_tmp.txt";
if($_POST['email']) {
$message=ereg_replace("\n", "<br>", $mess);
if(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/",$email)) 
echo "<font color=red>Неверный E-mail адрес!</font>";
}
if($_POST['name']&&$_POST['mess']) {
if(copy($f,$tmp)) {
$w=fopen($f,"w");
flock($w,2); 
fwrite($w,date("d.m.Y. H:i:s")."|".$email."|"." ".$name."|"." ".$mess."\n");
$r=fopen($tmp,"r");
flock($r,1);
while($messages=fgets($r,1000)) fputs($w, $mess);
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink($tmp);
}
}
if(empty($page)) $page=1;
show($page);

function show($page) {
global $f;
$kol=$page*10;
$messages=explode('\n',implode('\n',file($f)));
echo "<table border=1><tr><td><table width=700 border=0>";
for($i=($page-1)*10; $i<count($messages); $i++) {
  if($i<$kol) {
$message=explode("|",$messages[$i]);
list($date,$email,$name,$mess)=$message;

echo "<tr height=40><td background='BGF.jpg'><b>
<font color=#ffffff>Сообщение от ".$name." </font></b>
<br>&nbsp&nbsp<b>".$email."</b></td><td background='BGF.jpg'><b>".$date."</b></td></tr>
<tr><td width=100% height=100>".$mess."</td></tr>";
  }
}
echo "</table></td></tr></table><br>";
for($t=1; $t<10; $t++) {
 if(count($messages)>10*$t) echo "&nbsp&nbsp<a href=smileeck.php?page=$t>$t</a>";
  }
}

?>
</body>
</html>

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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