【问题标题】:Placing <textarea> inside tinymce (yes this again)将 <textarea> 放在 tinymce 中(又是这个)
【发布时间】:2011-01-31 15:42:01
【问题描述】:

我已经搜索和搜索了 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>';

还有一个重要的展示部分(你会读到为什么是 INA MIN) 我的提交按钮:


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

请记住,无需添加&lt;TEXTAREA&gt;,一切都会完美运行

好的,所以当我添加一个 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>';

(我也在所有解决方案中尝试了 htmlentities)

没有任何效果,所有解决方案都会以 1 或 2 种方式破坏页面:


1.

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

2.

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


-.- 我对此感到很困惑。 >.

帮助,也许? o.O

PS:我试图正确格式化这篇文章,但我想还是继续搞砸。

【问题讨论】:

  • 感谢三十为我编辑

标签: html forms tinymce textarea


【解决方案1】:

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

简短地说,我必须先转换 textarea 文件,然后在 tinymce 中渲染它,然后在保存之前将其转换回来(现在看起来像一个巨大的废话),现在保存和编辑 textarea 的 iny TinyMCE 的无限美丽循环很好。

【讨论】:

    猜你喜欢
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2012-10-14
    相关资源
    最近更新 更多