เขียนบทความใน ckedier แล้ว intert แต่มันถูกตัดคำออกไป

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา เขียนบทความใน ckedier แล้ว intert แต่มันถูกตัดคำออกไป

เขียนบทความใน ckedier แล้ว intert แต่มันถูกตัดคำออกไป

ผมเขียนบทความใน Ckediter แล้วทำการ intert ข้อมูลลงใน database แต่ำบทความความที่เขียน มาไม่ครบ เช่นผมเขียน ว่า  ผมรักคุณมากๆๆๆๆเลยน่ะ

พอ inteert เสร็จ มันมาแค่ ผมรัก แค่นี้ครับ 

 

ตัวแปร ผมกำหนดเป้นทั้ง text และ varchar ก็ไม่ได้ครับ

$(document).ready(function(){

	$('.ui.dropdown').dropdown();

	tinymce.init({
		selector: "#body",
		height: 250,
		theme: "modern",
		plugins: [
			"advlist autolink lists link image charmap print preview hr anchor pagebreak",
			"searchreplace wordcount visualblocks visualchars code fullscreen",
			"insertdatetime media nonbreaking save table contextmenu directionality",
			"emoticons template paste textcolor colorpicker textpattern"
		],
		toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
		image_advtab: true,
		templates: [
			{title: 'Test template 1', content: 'Test 1'},
			{title: 'Test template 2', content: 'Test 2'}
		]
	});
});

php sql

$title = $_POST['title'];
	$body = $_POST['body'];
	$form = $_POST['form'];
	$email = "test@test.com";
	$cate = $_POST['category'];

	$category = $cate;
	$myip = $_SERVER['REMOTE_ADDR'];

	$daynow = date("Y-m-d H:i");

	$log = $mysqli->query("SELECT * FROM logip WHERE ipaddress = '$myip'");
	$log_result = $log->fetch_assoc();

	$diff = DateTimeDiff($log_result['time_post'],date("Y-m-d H:i"));

	if($diff <= "0.00" && !@$_SESSION['Admin'])
	{
		echo "กรุณารอ 3 นาทีจะสามารถตั้งกระทู้ได้ใหม่";
		return false;
	} else {

		if($title == "" || $body == "" || $form == "")
		{
			return false;
		} else {

			$insert = $mysqli->query("INSERT INTO post (title,body,form,email,category,ip,time_post,time_update) VALUES ('".$title."','".$body."','".$form."','".$email."','".$category."','".$myip."','".$now."','".$now."')");
			if($insert)
			{
				$logip = $mysqli->query("INSERT INTO logip (ipaddress,time_post) VALUES ('$myip','$now')");
				$delete = $mysqli->query("DELETE FROM logip WHERE ipid = '$log_result[ipid]'");

				$post = $mysqli->query("SELECT * FROM post WHERE title='$title'");
				$post_result = $post->fetch_assoc();

				echo "Success.". $post_result['pid'];
				return false;
			} else {
				echo "Error !";
				return false;
			}
		}
	}
}


ขอบคุณครับ


Sun Yuttakarn 124.120.58.xxx 16-08-2016 15:04:59

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
<textarea id="body" rows="4" cols="4">
						</textarea>


หน้าฟอรมสำหรับเขียนบทความครับ


Sun Yuttakarn 124.120.58.xxx 16-08-2016 15:06
 ความคิดเห็นที่ 2
ก่อน insert ตรวจสอบค่าว่า ข้อมูลที่ส่ง ถูกตัดก่อนลงฐานข้อมูลหรือหลังลงฐานข้อมูล
เช่น มาเต็ม แต่พอเข้า db ข้อความหาย แบบนี้อาจจะเป็นกำหนดขนาดฟิลด์นั้นๆ น้อยหรือเปล่าต้องเช็คดู
แต่ถ้าข้อมูลถูกตัดตั้งแต่ส่งข้อมูล อันนี้เป้นกับตัว plugin ไหม ก้เช็คแยกตามส่วนดู


ninenik 180.183.106.xxx 16-08-2016
 ความคิดเห็นที่ 3

ลองปรับในส่วน db ค่าเยอะๆแล้วไม่ได้ครับ

 

ปลั๊กอินผมดึงมาจากเว็บของปลั๊กอินเลยครับ
รบกวนตรวจสอบตรงนี้ครับว่ามีปัญหาส่วนนี้หรือป่าว


 


function DoPost()
{
	var cpt = $('#capt').val();
		$.ajax({
		type: 'GET' ,
		data: {cpt: cpt },
		url: 'lib/chkcapt.php',
		success: function(data) {
			if(data == "OK"){
				var title = $("#title").val();
				var body = tinyMCE.get('body').getContent();
				body = body.replace("&","&");
				var form = $("#form").val();
				var category = $("#category").val();
				if(title == "")
				{
					alert("กรุณากรองหัวข้อกระทู้");
					return false
				}
				if(body == "")
				{
					alert("กรุณากรองรายละเอียด");
					return false
				}
				if(form == "")
				{
					alert("กรุณากรองชื่อของคุณ");
					return false
				}
				var datastring = "action=post&title="+title+"&body="+body+"&form="+form+"&category="+category;
				$.ajax({
					type: "POST",
					url:"process.php",
					cache: false,
					data:datastring,
					contentType: "application/x-www-form-urlencoded",
					success: function(response)
					{
						$("#title").val("");
						$("#body").val("");
						$("#form").val("");
						setTimeout(function(){window.location.href = 'index.php'},2000);
						alert(response);
					}
				});
			} else {
				alert("อักษรภาพไม่ถูกต้อง");
				location.reload();
			}
		}
	});
}


Sun Yuttakarn 124.120.58.xxx 16-08-2016 22:08
 ความคิดเห็นที่ 4
ลองเปลี่ยนจาก

                var datastring = "action=post&title="+title+"&body="+body+"&form="+form+"&category="+category;  
                $.ajax({  
                    type: "POST",  
                    url:"process.php",  
                    cache: false,  
                    data:datastring,  
                    contentType: "application/x-www-form-urlencoded",  
                    success: function(response)  
                    {  
                        $("#title").val("");  
                        $("#body").val("");  
                        $("#form").val("");  
                        setTimeout(function(){window.location.href = 'index.php'},2000);  
                        alert(response);  
                    }  
                });  


เป็น แบบนี้แทนดู

				$.post("process.php",{
					title:title,
					body:body,
					form:form,
					category:category
				},function(response){
                        $("#title").val("");  
                        $("#body").val("");  
                        $("#form").val("");  
                        setTimeout(function(){window.location.href = 'index.php'},2000);  
                        alert(response);  					
				});


ninenik 1.47.5.xxx 16-08-2016
 ความคิดเห็นที่ 5
ลองเปลี่ยนแล้วมันโพสบทความไม่ได้เลยครับ


Sun Yuttakarn 124.120.58.xxx 16-08-2016 23:14
 ความคิดเห็นที่ 6
  ไม่เคยใช้ตัวนี้เหมือนกัน แนะนำไม่ถูก แต่คิดว่า ต้องไปดูส่วนของการกำหนดค่าตารางว่าใช้เป็น text หรือ varchar 
ถ้าข้อความเยอะ ต้องเป็น text ตรงนี้ต้องตรวจสอบดีๆ และก็อีกส่วนก็คือค่าข้อมูล ต้องตรวจสอบดูว่าค่ามาตรงตามที่ต้องการไหม
 
หรือลองใช้ตัว ckeditor ตัวนี้ดู ใช้ง่ายไม่ยุ่งยาก
ตามลิ้งค์ http://cdn.ckeditor.com/

 
แนวทาง สร้างไฟล์ ckeditor_config.js โค้ดตามนี้ สำหรับตั้งค่า ckeditor แบบกำหนดเองเพิ่มเติม
 
CKEDITOR.editorConfig = function( config ) {
	config.toolbarGroups = [
		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },
/*		{ name: 'editing',     groups: [ 'find', 'selection', 'spellchecker' ] },*/
		{ name: 'links' },
		{ name: 'insert' },
/*		{ name: 'forms' },*/
/*		{ name: 'tools' },*/
/*		{ name: 'document',    groups: [ 'mode', 'document', 'doctools' ] },*/
/*		{ name: 'others' },*/
		'/',
		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
		{ name: 'paragraph',   groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
		{ name: 'styles' },
		{ name: 'colors' }
	];	
    config.language = 'th';
 	config.removePlugins = 'magicline';
	config.enterMode = 3;
	config.width = '700';
    config.uiColor = '#EFE4B0';
	config.allowedContent = true; 
};
 
และไฟล์ ckeditor_cdn.php แล้วไปทดสอบรันดู มีตัวอย่างทั้งส่งค่าแบบปกติ และ
ส่งค่าแบบ ajax เอาไปประยุกต์เพิ่มเติมได้
 
<?php
// กรณีส่งค่าแบบ submit ธรรมดา
if(isset($_POST['detail'])){
	echo "TITLE=>";
	echo $_POST['title'];
	echo "DETAIL=>";
	echo $_POST['detail'];
	exit;	
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>CKEditor</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>    
        <script src="//cdn.ckeditor.com/4.5.10/full/ckeditor.js"></script>
    </head>
    <body>
    <form action="" method="post" name="form_demo" id="form_demo">
    	<div>
        TITLE:<br>
        <input name="title" type="text" id="title" size="50"><br><br>
        DETAIL:<br>
        <textarea name="detail"></textarea>
      	<script>
			var pathURL= 'http://localhost/demo/jquery/'; // เปลี่ยนเป็น path ที่เก็บไฟล์ ckeditor_config.js
			var cke = CKEDITOR.replace( 'detail', {
				customConfig: pathURL+'ckeditor_config.js'
			});
        </script>
        </div>
        <br>
      <input type="submit" name="Submit" id="button" value="คลิกที่นี่เพื่อส่งข้อมูลแบบ ปกติ">
      <input type="button" name="submit_ajax" id="submit_ajax" value="คลิกที่นี่ส่งข้อมูลด้วย Ajax">
    </form>
      <script type="text/javascript">
      $(function(){
		  // กรณีส่งค่าแบบ ajax
		  $("#submit_ajax").on("click",function(){
			  $.post("ckeditor_cdn.php",{
				  title:$("#title").val(),
				  detail:cke.getData()
			  },function(response){
				  alert(response);
			  });
			  console.log(cke.getData());
		  });
	  });
      </script>
    </body>
</html>


 


>>>  อัพเดท >>> 17-08-2016
------------------------------------------
 


ninenik 1.46.195.xxx 17-08-2016
 ความคิดเห็นที่ 7
ถ้าใช้ตัวที่แอดมินบอก ตรงส่วนรของ


function DoPost()
{
	var cpt = $('#capt').val();
		$.ajax({
		type: 'GET' ,
		data: {cpt: cpt },
		url: 'lib/chkcapt.php',
		success: function(data) {
			if(data == "OK"){
				var title = $("#title").val();
				var body = tinyMCE.get('body').getContent();
				body = body.replace("&","&");
				var form = $("#form").val();
				var category = $("#category").val();
				if(title == "")
				{
					alert("กรุณากรองหัวข้อกระทู้");
					return false
				}
				if(body == "")
				{
					alert("กรุณากรองรายละเอียด");
					return false
				}
				if(form == "")
				{
					alert("กรุณากรองชื่อของคุณ");
					return false
				}
				var datastring = "action=post&title="+title+"&body="+body+"&form="+form+"&category="+category;
				$.ajax({
					type: "POST",
					url:"process.php",
					cache: false,
					data:datastring,
					contentType: "application/x-www-form-urlencoded",
					success: function(response)
					{
						$("#title").val("");
						$("#body").val("");
						$("#form").val("");
						setTimeout(function(){window.location.href = 'index.php'},2000);
						alert(response);
					}
				});
			} else {
				alert("อักษรภาพไม่ถูกต้อง");
				location.reload();
			}
		}
	});
}

ต้องกำหนด 
var body = tinyMCE.get('body').getContent();
				body = body.replace("&","&");

เป็นอะไรครับ


Sun Yuttakarn 124.120.58.xxx 17-08-2016 08:09
 ความคิดเห็นที่ 8
ผมลองกดหนด เป็น


function DoPost()
{
	var cpt = $('#capt').val();
		$.ajax({
		type: 'GET' ,
		data: {cpt: cpt },
		url: 'lib/chkcapt.php',
		success: function(data) {
			if(data == "OK"){
				var title = $("#title").val();
				var body = CKEDITOR.instances.body.getData();
				var form = $("#form").val();
				var category = $("#category").val();
				if(title == "")
				{
					alert("กรุณากรองหัวข้อกระทู้");
					return false
				}
				if(body == "")
				{
					alert("กรุณากรองรายละเอียด");
					return false
				}
				if(form == "")
				{
					alert("กรุณากรองชื่อของคุณ");
					return false
				}
				var datastring = "action=post&title="+title+"&body="+body+"&form="+form+"&category="+category;
				$.ajax({
					type: "POST",
					url:"process.php",
					cache: false,
					data:datastring,
					contentType: "application/x-www-form-urlencoded",
					success: function(response)
					{
						$("#title").val("");
						$("#body").val("");
						$("#form").val("");
						setTimeout(function(){window.location.href = 'index.php'},2000);
						alert(response);
					}
				});
			} else {
				alert("อักษรภาพไม่ถูกต้อง");
				location.reload();
			}
		}
	});
}

ลองโพสแล้วมันก็มาไม่ครบมันถูกตัดคำออก  มันจะถูกตัดคำออกที่มีพวก link พวกตัวหนาๆ  โดยเฉพาะเรราไปก็อบมา แต่ถ้ามีแบบ text เขียนธรรมดาไม่มีตัวหนาไม่มี ลิงค์ มันมาครบครับ


Sun Yuttakarn 124.120.58.xxx 17-08-2016 08:25
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ