GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ช่วยผมด้วยครับ

ผมพยายามจะบันทึกข้อมูลด้วย ajax โดยรับข้อมูลจาก textarea  แล้วบันทึกลงฐานข้อมูล มันไม่จำพวก enter space bar ผมใช้ preg_replace ผลออกมาก็ยังเหมือนเดิม แต่ถ้าไม่ใช้ ajax มันกลับแสดงผลได้ตรง ช่วยแนะนำด้วยครับ
16 มิ.ย. 2552 9 2,539

อาจารย์ช่วนเขียนตัวอย่างฟังชัน preg_replace ที่ใช้ในการแทนที่พวก enter กับ space bar จาก textarea ให้ซักตัวหน่อยครับ
#1

อาจารย์ครับ ได้มาแล้วครับ ฟังชันในการทำให้ขึ้นบันทัดใหม่ 
preg_replace("#\n+#", "<br>",$message);

แต่เจอปัญหาใหม่ คือมันไม่แสดงภาษาไทย กลับเป็น %u0E01%u0E01 เต้มไปหมด ผมเอาโค้ด
preg_replace('/%u([0-9a-f]{4})/ie', "'&#'.hexdec('').';'", $message);

ไปแก้แล้ว แต่ก็ยังไม่หาย รบกวนช่วยผมด้วย แย่เลยครับ หาทั้งคืน
#2

มันไม่ต้องแปลงอะไรนิครับ แต่ method ที่ใช้ต้องเป็น POST น่ะครับ
#3

method นี้ หมายถึงตรงฟอร์ม หรือ ตรง โค้ด ajax ครับ
#4

ลองเอาข้อมูลที่บันทึกได้ลงใน db มาดู ปกติผมจะแปลง ตัวอักษรขึ้นบรรทัดใหม่เป็น \r และ \n
str_replace(array("\r", "\n"), array('\r', '\n'), $data);

เวลาจะแสดง ก็ทำกลับกันครับ
#5

อาจารย์ครับ พอส่งผ่านฟอร์มอาแจกไป มันไม่จำค่าพวก \n เลยครับ
ตัวนี้ครับ "สวัสดีพี่น้อง ทานข้าวหรือยัง" ตรงช่องว่าง ที่จริงผม enter ครับ มันไม่ยอมแปลงให้
#6

Ajax ครับ
req.open("POST", url, true);
#7

555+++ มันไม่เกี่ยวกันหรอกถ้างั้น
ลอง view source ดูว่าตรงข้อความมันขึ้นบรรทัดใหม่มั้ย บราวเซอร์มันไม่รู้จักตัวอักษรขึ้นบรรทัดใหม่ มันรู้จักแต่ <br>
ก็ให้แปลงตัวอักษรขึ้นบรรทัดใหม่เป็น ก็จบ
nl2br($data);

ใช้ฟังกชั่นนี้ตอนแสดงผลนะ
ตอนเก็บลง db ให้เก็บไปตามปกติ

เรื่องของเรื่อง ตอบกันหลายกระทู้ก็เพราะคำถามไม่ได้วิเคราะห์มาก่อน ว่าปัญหามันอยู่ที่ตรงไหน เลยทำให้ตั้งคำถามไม่ตรงจุด
#8

#9
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^