سلام
چطور می تونم محتوای CkEditor را همانند یک input type text در جداول بانک ذخیره کنم؟
این کدهای ادیتور :
<div class="grid-container">
<div class="grid-width-100">
<div id="editor">
<h1>Hello world!</h1>
<p>I'm an instance of <a href="http://ckeditor.ir">ckeditor.ir</a>.</p>
</div>
</div>
</div>
آی دی editor رو به textbox دادم اما شکلش بهم خورد!!
<div align="center">
<form action="" method="post">
<input type="text" id="editor" name="txtDescrip" />
<input type="submit" name="submit" />
</form>
</div>
ببینید شما نیازی به تگ div ندارید.
CKEditor از شما یک نام تگ یا شناسه (و یا شئ ایی از) textarea از شما میگیرد و سپس آن را تبدیل به editor میکند. به همین راحتی.
شما برای دریافت داده ها سمت سرور باید فقط به تگ textarea یک نام ("name="my_field) بدهید و سپس در سمت سرور همانند سایر فیلد ها اطلاعات را دریافت کنید.
مثال
<form method="post">
<textarea name="my_field"></textarea>
<input type="submit" value="send to server">
</form>
<script>
$('textarea[name="my_field"]').val(<?=json_encode($html_code_from_database)?>);
CKEDITOR.replace('my_field');
</script>
کد PHP
<?php
print_r($_POST['my_field']);
?>
در حالت معمولی ، مقدار texarea گرفته و ذخیره می شود مشکلی هم نیست.
اما :
الآن این کدهای ادیتور Ck هست :
<div class="grid-container">
<div class="grid-width-100">
<div id="editor">
///Editor Block
</div>
</div>
</div>
یعنی باید به همین شکل نوشته شود تا نمایش داده بشه ، اگر id مربوط به ادیتور رو به textarea بدم شکلش به هم میخوره (تصویر پیوست).
چرا باید id مربوط به editor را به textarea بدهید ؟
لطفا توضیحات بیشتر + کد کامل را اینجا قرار دهید.
لطفا به این مثال دقت کنید
مشاهده مثال
شما توی کدتون در پست اول، تگ input گذاشتین. باید TextArea باشه.
که حالت نمایش editor به textarea منتقل بشه یعنی ابزار راست چین ، لینک و ... به textarea داده بشه اصلا این امکان پذیر هست یا خیر؟، ما قراره محتوای وارد شده در Ck editor رو بگیریم نه textarea.
الآن در مثال شما محتوای موردنظر رو توسط اسکریپت js به textare داده اید.
این کل کدهای بنده :
<!DOCTYPE html>
<!--
Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
-->
<html>
<head>
<meta charset="utf-8">
<title>CKEditor Sample</title>
<script src="ckeditor.js"></script>
<script src="samples/js/sample.js"></script>
<link rel="stylesheet" href="samples/css/samples.css">
<link rel="stylesheet" href="samples/toolbarconfigurator/lib/codemirror/neo.css">
</head>
<body id="main">
<main>
<br />
<div class="grid-container">
<div class="grid-width-100">
<div id="editor">
///Editor Block
</div>
</div>
</div>
<div align="center">
<form method="post">
<textarea name="my_field" id="editor"></textarea>
<input type="submit" value="send to server">
</form>
</div>
<script>
initSample();
</script>
<script>
$('textarea[name="my_field"]').val(<?=json_encode($html_code_from_database)?>);
CKEDITOR.replace('my_field');
</script>
<?php
print_r($_POST['my_field']);
?>
</body>
</html>
فایل ها رو پیوست کردم.
تشکر
نقل قول:که حالت نمایش editor به textarea منتقل بشه یعنی ابزار راست چین ، لینک و ... به textarea داده بشه اصلا این امکان پذیر هست یا خیر؟
هیچ چیز به textarea اضافه نمی شود!
CKEDITOR فقط میاید textarea شما را پنهان می کند و سپس عناصر خود را وارد صفحه می کند(یعنی ادیتور را به شما نشان میدهد)
این ادیتوری هم که به شما نشون میده با کد های html,css,js ایجاد شده اما منتها شما فقط خروجی را میبینید.
نقل قول:ما قراره محتوای وارد شده در Ck editor رو بگیریم نه textarea.
خیر. محتوای ادیتور بصورت خودکار بر روی textarea قرار میگیرد و شما نیاز به گرفتن اطلاعات بصورت دستی ندارید.
یک مثال از نحوه ارسال و دریافت براتون ضمیمه کردم.
امیدوارم کمکتون کند.
بالاخره درست شد ، ممنون از راهنمایی و نمونه کدهای کارآمدی که قرار دادید.