Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Прикрутить виз редактор (https://forum.antichat.xyz/showthread.php?t=121063)

bxN5 17.05.2009 17:06

Прикрутить виз редактор
 
Вообщем есть редактор тинимсе
есть такая структура:
получаем контент
PHP код:

$q 'SELECT * FROM page WHERE id=1';
$res=$db->QuerySingleRowArray($q) or die(mysql_error());
$text=$res[1] ; 

суем в текстериа контент
Код HTML:

<textarea id=\"elm1\" name=\"elm1\" rows=\"15\" cols=\"80\" style=\"width: 80%\">
                        ".$text."
                        </textarea>

а вот дальше я не знаю как измененный текст со всеми тегами в редакторе отправить в базу есть что то вроде такого
PHP код:

if (isset ($_POST['but'])) {
    echo (
"<script type=\"text/javascript\">
    
    var text = tinyMCE.get('elm1').getContent();</script> "
); /* в документации так 
получают контент но по поему он его 
так и не получает дальше хз как это правильней передать в пхп */
    
    
    
$update["text"] = MySQL::SQLValue($text);
    
$filter["id"] = 1;
    
$id $db->UpdateRows("page"$update$filter) or die(mysql_error());
    
 echo (
"Текст отредактирован"); 

При таком состоянии он возвращает редактор значения что хранится в базе при любых действиях что и не удивительно

astrologer 17.05.2009 17:42

Как-нибудь так:
Код:

function save()
{
  var text = tinyMCE.get('elm1').getContent();

  tinymce.util.XHR.send
  ({
    url:  'saver.php',
    data: 'text=' + encodeURIComponent(text)
  });
};


bxN5 17.05.2009 18:20

чет он не передает нифига(
Ошибка: tinyMCE.get("elm1") is undefined
не там вызываю что ли?

astrologer 17.05.2009 19:29

Цитата:

Сообщение от bxN5
чет он не передает нифига(
Ошибка: tinyMCE.get("elm1") is undefined
не там вызываю что ли?

Вполне может быть.
/r/код.

bxN5 18.05.2009 00:07

не думаю
вот допустим сделать кнопку
PHP код:

<a href=\javascript:;\" onmousedown=\"alert(tinyMCE.get('elm1').getContent());\">[Get contents]</a> 

так все норм , а на строчку нижу
Цитата:

<script type=\"text/javascript\">

save() ;
</script> ");
так этот эрор

astrologer 18.05.2009 00:14

Цитата:

Сообщение от bxN5
не думаю
вот допустим сделать кнопку
PHP код:

<a href=\javascript:;\" onmousedown=\"alert(tinyMCE.get('elm1').getContent());\">[Get contents]</a> 

так все норм , а на строчку нижу

так этот эрор

т.е. tinyMCE.init ты не вызываешь?

P.S. И эта "строчка ниже" будет исполняться сразу, как только браузер её встретит. Т.к. полного примера так и нет, остается догадываться о том, где же находится поле для редактирования и вызов метода init, если он вообще вызывается.

bxN5 18.05.2009 00:49

Полностью
PHP код:

<?php


 
if( ! defined'PROTECTED' ) ) {
    die( 
"Хакера не пройдут!!" );
}


if(!
$_SESSION['admin']) die ("Доступ закрыт");
$db = new MySQL(true"$dbname""localhost""$dbuser""$dbpass"); // конектимся
    
if ($db->Error()) $db->Kill();
$q 'SELECT * FROM page WHERE id=1';
$res=$db->QuerySingleRowArray($q) or die(mysql_error());
$text=$res[1] ;
var_dump($text);
echo (
"<script type=\"text/javascript\">
function save()
{
  var text = tinyMCE.get('elm1').getContent();

  tinymce.util.XHR.send
  ({
    url:  'saver.php',
    type : 'POST',

    data: 'text=' + encodeURIComponent(text)
  });
};
</script> "
);
echo (
'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=cp-1251" />
<title>Административная панель</title>
<style type="text/css">
#wrap
{
width: 100%;
height: 100%;
}
.loginbox1
{
width: 300px;
padding: 4px;
border: 1px solid #777;
background-color: #777;
color: white;
font-weight: bold;
}
.loginbox2
{
width: 300px;
padding: 4px;
border: 1px solid #777;
color: #777;
}
</style>
</head>
<body>
<center>
<table cellpadding="0" cellspacing="0" id="wrap"><tr><td align="center">
<table cellpadding="0" cellspacing="0">
<tr><td class="loginbox1" align="center">Вход выполнен</td></tr>
<tr><td class="loginbox2" align="center">
<script type="text/javascript" src="../js/tiny_mce/tiny_mce.js"></script>

<script type="text/javascript">
    tinyMCE.init({
        // General options
        mode : "textareas",
        theme : "advanced",
        
        plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

        // Theme options
        theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : true,

        // Example content CSS (should be your site CSS)
        content_css : "css/content.css",

        // Drop lists for link/image/media/template dialogs
        template_external_list_url : "lists/template_list.js",
        external_link_list_url : "lists/link_list.js",
        external_image_list_url : "lists/image_list.js",
        media_external_list_url : "lists/media_list.js",

        // Replace values for the template plugin
        template_replace_values : {
            username : "Some User",
            staffid : "991234"
        }
    });
</script>
 <form action="index.php?go=pagemain"  method="post">


 '
); 
echo (
"

<textarea id=\"elm1\" name=\"elm1\" rows=\"15\" cols=\"80\" style=\"width: 80%\">
            "
.$text."
            </textarea>
        </div>

        <!-- Some integration calls -->
        
        <a href=\javascript:;\" onmousedown=\"alert(tinyMCE.get('elm1').getContent());\">[Get contents]</a>
        

        <br />
        <input type=\"submit\" name=\"but\" value=\"Войти\" />
        
        
        
        
</form>
    </div>



 "
); 

echo (
'

</td></tr>
</table>
</td></tr></table>
</center>
</body>
 
</html>
'
);
 if (isset (
$_POST['but'])) {
    echo (
"<script type=\"text/javascript\">
    
    save() ;
    </script> "
);
     include (
"saver.php");
    
    
var_dump ($text) ;
    
    
$update["text"] = MySQL::SQLValue($text);
    
$filter["id"] = 1;
    
$id $db->UpdateRows("page"$update$filter) or die(mysql_error());
    
 echo (
"Текст отредактирован"); 


    
}

?>

saver.php
PHP код:

<?php


  
if( ! defined'PROTECTED' ) ) {
    die( 
"Хакера не пройдут!!" );
}

  if (isset (
$_POST['text'])) {
$text=$_POST['text'];
var_dump ($text);
    
}
else {
    echo (
"text is null fuck(");
}

?>

вот как то так


Время: 23:05