Войти

Показать полную графическую версию : смайлы в гостевухе


Mavlyudov
20-04-2006, 00:08
приветствую всех.
Нужно сделать смйлы для гостеквухи.
вот функция для вставки смайлов в текстареа:

<SCRIPT LANGUAGE="JavaScript">
function InsertSmile(smile){
var txt = document.getElementById('txt_message');
txt.value+=':'+smile+':';
}
</script>

вот код скрипта который берет из папки smiles имена файлов и прописывает
их в базе для дальнейшего использования.. а затем выводить сами смайлы..этот
код у меня стоит в <div>

$dir=opendir("smiles");
$file=readdir($dir);
$file=readdir($dir);
$i=0;
include("database.php");
while(($file=readdir($dir))!==false)
{
$i++;
$st=explode(".",$file);
$sql=("INSERT INTO smiles ( 'id' , 'code' , 'source' , 'theme' ) VALUES ('', ':".$st[0].":', 'smiles/".$file."', '');");
mysql_query($sql);
echo(" <img src='smiles/".$file."' onclick='InsertSmile(\"".$st[0]."\")'</img>");
if($i==6){echo("<br>");$i=0;}
}

code - поле вида :smile_name:
source - то на что мы заменяем code
ну и собственно кусок кода который обрабатывает все сообщение

$sql2="SELECT * FROM smiles";
$smile_query=mysql_query($sql2);
$msg=0;
while($smile_array=mysql_fetch_array($smile_query)){
$msg=str_replace($smile_array['code'],"<img src='".$smile_array['source']."'>",$msg);
}

Сама таблица smiles имеет такой вид:
id code source theme
1 :sm0: sm0.gif
2 :sm1: sm1.gif
Вобщем проблема такая:
по нажатию на каждый смайл, в текстарею вставляется что-то типа :sm1: а потом, когда сообщение уже создано, :sm1: не заменяется на картинку sm1.gif
Подскажите, что делать?

Prisoner
20-04-2006, 01:39
Забавненько... $msg=0. В ноле маловероятно, что найдется даже двоеточие. Я так полагаю это очепятка при вставке кода в топик? Попробуйте непосредственно, для теста, вывести после цикла содержимое $msg, а в самом цикле повыводите значения массива $smile_array по ключам code и source. Т.е. так:
$sql2="SELECT * FROM smiles";
$smile_query=mysql_query($sql2);
$msg=$_POST['msg']; //если поле формы по отправке сообщения имеет именно такое name
while($smile_array=mysql_fetch_array($smile_query))
{
$msg=str_replace($smile_array['code'],"<img src='".$smile_array['source']."'>",$msg);
echo $smile_array['code'].'->'.$smile_array['source'].'<br>';
}
echo $msg;

Что получается в исходном коде странички? Может какие-то несоотвествия между предполагаемыми значениями того ЧТО меняем и теми, что лежат в БД?




© OSzone.net 2001-2012