将<textarea>放在tinymce中(是的,再次)</textarea>

时间:2011-01-31 15:42:02

标签: html forms tinymce textarea

我搜索并搜索了2天,我似乎找不到解决问题的方法。

因此,在我的CMS中,将内容加载和保存到TinyMCE中的正常操作工作正常,但是当我为联系表单添加textarea或其他任何内容时,所有这些操作都转到了Lucifer的世界。代码如下:

获取发布的数据:

//get page info

$pnfo = $dbase->getPage("page_a_link", $page2edit);

if($_POST['pageedit']!='') { 

    //to be success message
    $sHeader = '<span style="text-align: center;"><h3><span style="color:green;">'
    .ucfirst($page2edit).' has Been Succesfully Updated</span></h3></span>'; 

    //content to be injected into page
        $sContent = "<? ";

        // add access level
        if ( $pnfo['page_level'] !== GUEST_LEVEL ) {
            if ( $pnfo['page_level'] == MEMBER_LEVEL ) {
                $sContent .="  \$access_level='members';";
            } else {
                $sContent .="  \$access_level=".$pnfo['page_level'].";";        
            }
            $sContent .="  include('../inc/pageauth.inc.php'); ";       
        } 

        $sContent .=" ?> ";

        //add posted content
        $sContent .= stripslashes($_POST['pageedit']);

        // inject   article module  
        if ( $pnfo['isblog'] == "1" ) {
            $sContent .="<? \$page='".$pnfo['page_bread']."'; include('../inc/modules.inc/articles.mod/inject.articles.mod.php'); ?>";
        } 

    //add content to page
    file_put_contents("../../../content/page/tpl/".$page2edit,$sContent);

    // echo success message
    echo $sHeader;
}

以及在TINYMCE中提供的代码


$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';   
  ob_start();
  error_reporting(0); 
  include('../../../content/page/tpl/'.$page2edit);
  $render_pages .= ob_get_clean();
$render_pages .= '</textarea>';

和显示的重要部分(你为什么不读) 我的提交按钮:


$render_pages .= '<input type="image" onclick="javascript: window.open(\'pages\',\'_self\')"'; 

保持谨慎,一切工作完美而不添加<TEXTAREA>

好吧,所以当我添加一个textarea时会发生什么,当它保存时,它表示它保存但不是页面本身,而是“页面”,这是我发布到的(我的提交按钮)。

我理解应该如何呈现textarea,这是我尝试失败的所有解决方案:


1:

$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';   
  ob_start();
  error_reporting(0); 
  $src = include '../../../content/page/tpl/'.$page2edit;
  $render_pages .= htmlspecialchars($src); (also with ENT_NOQUOTES)
  $render_pages .= ob_get_clean();
$render_pages .= '</textarea>';

2:

$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';   
  ob_start();
  error_reporting(0); 
  htmlspecialchars(include('../../../content/page/tpl/'.$page2edit));
  $render_pages .= ob_get_clean();
$render_pages .= '</textarea>';

3:

$sContent .= stripslashes(htmlspecialchars($_POST['pageedit']));

4:

$file = file_get_contents('../../../content/page/tpl/'.$page2edit, true);
$file = str_replace('</textarea>', htmlspecialchars('</textarea>'), $file);
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';   
  $render_pages .= $file;
$render_pages .= '</textarea>';

5:

$file = file_get_contents('../../../content/page/tpl/'.$page2edit, true);
$file = str_replace('</textarea>', htmlspecialchars('</textarea>'), $file);
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">';   
  ob_start();
  $render_pages .= $file;
  $render_pages .= ob_get_clean();
$render_pages .= '</textarea>';

(我在所有解决方案中都尝试了很多方法)

没有任何作用,所有解决方案都会破坏页面的1或2种方式:


1

在回显成功标题时中断,但使用“pages”作为页面名称而不是要保存的实际页面名称(请记住,“pages”是我在图像提交按钮中发布的链接 - 这称为简单提交表单的java代码 - 我相信你们大多数人认为那样)并且它会阻止页面的其余部分显示

2

与第一个相同,但它会打破页面的其余部分。


-.-我对此很困惑。 &GT;。&LT;

或许,帮助? o.O

PS:我试图将这篇文章设置为格式正确,但我认为还是搞砸了。

1 个答案:

答案 0 :(得分:1)

Yeeeeeea,所以我只需要'重置'内容,就像清除页面一样。将它作为空白页加载到tinymce中,然后添加了textarea标签,解决方案3已经就位,一切都很好。 ^。^

简短的甜蜜,我不得不转换textarea文件,然后再将它转换为tinymce然后在保存之前将其转换回来(现在看起来像是一个巨大的duh),现在保存和编辑textarea的iny TinyMCE的无限美妙循环很好。