Вообщем есть редактор тинимсе есть такая структура: получаем контент 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 ("Текст отредактирован"); При таком состоянии он возвращает редактор значения что хранится в базе при любых действиях что и не удивительно
Как-нибудь так: Code: function save() { var text = tinyMCE.get('elm1').getContent(); tinymce.util.XHR.send ({ url: 'saver.php', data: 'text=' + encodeURIComponent(text) }); };
не думаю вот допустим сделать кнопку PHP: <a href=\javascript:;\" onmousedown=\"alert(tinyMCE.get('elm1').getContent());\">[Get contents]</a> так все норм , а на строчку нижу так этот эрор
т.е. tinyMCE.init ты не вызываешь? P.S. И эта "строчка ниже" будет исполняться сразу, как только браузер её встретит. Т.к. полного примера так и нет, остается догадываться о том, где же находится поле для редактирования и вызов метода init, если он вообще вызывается.
Полностью 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("); } ?> вот как то так