สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network
Moderator: mindphp, ผู้ดูแลกระดาน
-
eange08
- PHP VIP Members
- โพสต์: 16377
- ลงทะเบียนเมื่อ: 22/12/2020 10:09 am
โพสต์ที่ยังไม่ได้อ่าน
โดย eange08 »
อันนี้เป็นหน้าแก้ไข ถ้าไม่ได้ใส่อะไรเพิ่มใน textarea นี้ แล้วจะนำมาเช็คใน event กรณีที่ใส่ bullet น้อยกว่า 3 ข้อให้แสดง error จะต้องเช็คตัว bullet ยังงัยค่ะ
- ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM-1.png (21.73 KiB) Viewed 1078 times
หน้า template
โค้ด: เลือกทั้งหมด
<div class="key-point">
<textarea onkeyup="handleInput(event)" rows="10" id="subtopic" name="subtopic" class='inputbox keynote-text'>{SUB_TOPIC_IDEAS}</textarea>
</div>
<input id="row_key" name="row_key" value="1" type="hidden">
ค่าที่ได้จาก textarea
ไฟล์ listener.php ใช้ event เช็คส่ง error ไปค่ะ
โค้ด: เลือกทั้งหมด
public function posting_modify_message_text($event){
$error = $event['error'];
if(!$this->request->variable('subtopic','',TRUE)){
$error[] = $this->user->lang('ERROR_SUBTOPIC');
}
if($this->request->variable('row_key',0)<3){
$error[] = $this->user->lang('ERROR_SUBTOPIC_UNIT');
}
$event['error'] = $error;
}
ไฟล์ javascript ที่ใส่ bullet
โค้ด: เลือกทั้งหมด
const bullet = "\u2022";
const bulletWithSpace = `${bullet} `;
const enter = 13;
const handleInput = (event) => {
const { keyCode, target } = event;
const { selectionStart, value } = target;
var row = parseInt($('#row_key').val());
if (keyCode === enter) {
target.value = [...value]
.map((c, i) => i === selectionStart - 1
? `\n${bulletWithSpace}`
: c
)
.join('');
console.log(target.value);
$('#row_key').val(row + 1); //ถ้าตอนเพิ่มให้อันนี้นับให้ เอาไปใช้เช็คได้ แต่ตอนแก้ไขมันจะนับเริ่มจาก 1 ใหม่ถ้ามีการ enter
target.selectionStart = selectionStart+bulletWithSpace.length;
target.selectionEnd = selectionStart+bulletWithSpace.length;
}
if (value[0] !== bullet) {
target.value = `${bulletWithSpace}${value}`;
}
}
-
mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41356
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
-
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย mindphp »
เบื่องต้นเช็ค ลองเช็คเป็นค่าวางหรือไม่ว่างก่อนก็ได้ครับ
แล้วค่อยเช็ค จำนวนตัวอักษร อย่างน้อย 6 ตัว และมี การขึ้นบรรทัดใหม่ ก็น่าจะเพียงพอ
\n คือ new line
ลอง var_dump ข้อมูลออกมาเช็คดูก่อว่าฟอร์มส่งอะไรมาบ้าง
-
eange08
- PHP VIP Members
- โพสต์: 16377
- ลงทะเบียนเมื่อ: 22/12/2020 10:09 am
โพสต์ที่ยังไม่ได้อ่าน
โดย eange08 »
นับจาก \n ได้แล้วนะคะ
โค้ด: เลือกทั้งหมด
$subtopic = $this->request->variable('subtopic','',TRUE);
echo $subtopic.'<br>';
$your_string = preg_replace('~\R~u', "\r\n", $subtopic ); //เช็คแล้วแทนที่ \n ลงไป
$message_count = explode("\n",$your_string); //ใช้ตัด \n เป็น array ออกมา
print_r($message_count);
echo '<br>'.count($message_count);exit(); //ก็จะนับจำนวน array ที่ได้จาก explode ออกมาได้ค่ะ
ผลลัพท์
- Programming - PHP-1.png (4.77 KiB) Viewed 1073 times
-
-
- 2 ตอบกลับ
- 1115 แสดง
-
โพสต์ล่าสุด โดย Thanavat_n
20/04/2023 3:44 pm
-
-
- 0 ตอบกลับ
- 2325 แสดง
-
โพสต์ล่าสุด โดย Kannaphat
15/12/2020 5:56 pm
-
-
- 1 ตอบกลับ
- 9333 แสดง
-
โพสต์ล่าสุด โดย Ittichai_chupol
25/01/2019 7:18 pm
-
-
- 1 ตอบกลับ
- 6220 แสดง
-
โพสต์ล่าสุด โดย mindphp
15/10/2018 12:28 pm
-
-
- 0 ตอบกลับ
- 4607 แสดง
-
โพสต์ล่าสุด โดย mindphp
18/04/2015 4:49 am
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 128