|
|
|
พี่ครับช่วยดูcheckboxให้ผมหน่อยครับมันติ้กไม่ตรงตำแหน่งอ่ะครับ |
|
|
|
|
|
|
|
ไม่มีโค๊ดก็ไป debug เอาเองนะครับ
แต่หลักๆ ก็คือ Checkbox ถ้าไม่ติ๊ก มันจะไม่มีการส่งค่าไปยัง server นะครับ
แบบ ตัวแปร มันหายไปเลย เพราะฉนั้น เวลาตรวจสอบต้องคำนึงถีงข้อนี้ด้วย
ลิสต์ของตัวแปร ใน array จะแสดงรายการที่ถูกเช็คเท่านั้น
|
|
|
|
|
Date :
2020-02-16 12:27:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<input class="custom-control-input" value="<?=$numTitle?>"
id="customCheck_<?=$numTitle?>"
helpRemember="ส่วนcheckbox" name="customCheck[]" type="checkbox"
>
ใส่หมายเลข ID ใน attribute Value เพื่อบอกว่า ที่ติ๊ก checkbox เป็นของบันทัดไหน
ไม่ใช่ใสค่า Y N มันไม่ได้ประโยชน์
ส่วนคำสั่งตรวจเช็ค
Code (PHP)
$cuschk = isset($_POST['customCheck']) ? $_POST['customCheck'] : [];
// สร้างตัวแปรมารับค่าการเช็ต ถ้าไม่มีให้กำหนดเป็น array ว่าง
// ถ้าไม่มีการเช็คเลย มันจะไม่มี ตัวแปร customCheck ส่งมาด้วยแม้แต่ค่าว่าง
foreach ($_POST['titleId'] as $key=>$Title) { //loop เปลี่ยนจาก for เป็น foreach
$Status = in_array($Titld, $cuschk) ? 'Y' : 'N';
echo $TitId . " " . $Status . "<br>";
}
หมายเหตุ จะคอมเม้นท์อะไร คำนึงถีงภาษาที่ใช้ ณ ตรงนั้นด้วย เป็นภาษาอะไร
เอา // ไปใช้ กับ attribute ของ html มันจะใช้ได้เหรอ ให้สร้าง attribute ครอบข้อความที่ต้องการดีกว่าไหม
แก้ไขใหม่ ข้างบน ก๊อปมาแล้วแก้ไขไม่หมด
Code (PHP)
$cuschk = isset($_POST['customCheck']) ? $_POST['customCheck'] : [];
// สร้างตัวแปรมารับค่าการเช็ต ถ้าไม่มีให้กำหนดเป็น array ว่าง
// ถ้าไม่มีการเช็คเลย มันจะไม่มี ตัวแปร customCheck ส่งมาด้วยแม้แต่ค่าว่าง
foreach ($_POST['titleId'] as $key=>$Title) { //loop เปลี่ยนจาก for เป็น foreach
$Status = in_array($Title, $cuschk) ? 'Y' : 'N';
echo $Title . " " . $Status . "<br>";
}
|
ประวัติการแก้ไข 2020-02-16 14:11:18 2020-02-16 14:12:59 2020-02-17 11:20:41
|
|
|
|
Date :
2020-02-16 14:10:44 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมพิมพ์ผิด ก๊อบมาแล้วแก้ไขไม่หมด แต่ลองวิเคราะห์ เองดูก่อน
ดูที่คำสั่ง foreach วัตถุประสงค์ของคำสั่งนี้ และ ผลลัพธ์ของ ตัวแปร $key และ $Title
น่าจะทำให้รู้ว่าควรเปลี่ยนอะไรเพิ่ม หรือจะนำไปใช้ประโยชน์อะไรต่อ
|
|
|
|
|
Date :
2020-02-16 15:54:26 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผลลัพธ์นี้ไม่ถูกต้องนะครับ
ตามภาพ check ตัวเดียว
ผลลัพธ ต้องมีแค่ ตัวเดียวเช่นกัน
คงต้องหาเหตุผลก่อนว่า ทำไมรันออกมาเป็นแบบนี้
|
|
|
|
|
Date :
2020-02-17 09:40:13 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จขกท. เลาะเอาส่วนอื่นๆออก (อาจใช้ php comment <?php /* ?>any html<?php */ ?>) เอาส่วนที่ไม่เกี่ยวเลยออกไปก่อน ให้มันเจาะจงเข้าไปที่ส่วนของปัญหาให้มากกว่านี้ แล้วหน้ารับข้อมูล ลอง print_r($_POST) เพื่อดูข้อมูลที่รับมาทั้งหมด
แบบนี้มันจะดีกว่ามั้ย? มันจะแก้ไขง่ายตรงจุดมากกว่ามั้ย?
|
|
|
|
|
Date :
2020-02-17 10:48:24 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใช้ foreach() เหมือนที่คุณChaidhanan แนะนำไว้ใน No. 3 มาแสดงผลดูครับ
ส่วนของ INPUT ควรจะใส่ ID อ้างอิงแต่ละตัวเลือกลงไปด้วย
<input type="hidden" name="titleId[<?php echo $ID?>]" value="<?php echo $titleId?>">
|
|
|
|
|
Date :
2020-02-17 11:37:27 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|