รบกวนขอคำแนะนำ จะให้แสดงข้อมูลที่บันทึกไว้ใน radio โดยใช้ loop for

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนขอคำแนะนำ จะให้แสดงข้อมูลที่บันทึกไว้ใน radio โดยใช้ loop for

รบกวนขอคำแนะนำ จะให้แสดงข้อมูลที่บันทึกไว้ใน radio โดยใช้ loop for

$sql_sdq="SELECT evaluate_date, choice1, choice2, choice3, choice4, choice5, choice6, choice7, choice8, choice9, choice10, choice11, choice12, choice13, choice14, choice15, choice16, choice17, choice18, choice19, choice20, choice21, choice22, choice23, choice24, choice25, choice26, choice27, choice28, choice29, choice30, choice31, choice32, choice33,evaluate_type,evaluate_note,spent_hour,relation
           FROM evaluate_sdq WHERE student_id='$_GET[student_id]' AND evaluate_type='$type' LIMIT 1";
$query=dbQuery($sql_sdq);echo $sql_sdq;
$row    = dbFetchObject($query); 

for($i=1;$i<=25;$i++){
 
switch ($i) {
  case 1 :$choice='ใส่ใจความรู้สึกของผู้อื่น';
      $point1=0;  $point2=1;  $point3=2; 
break;
  
  case 2 :$choice='อยู่ไม่สุข เคลื่อนไหวมาก ไม่สามารถอยู่นิ่งได้นาน';
      $point1=0;  $point2=1;  $point3=2; 
break;
    default :
}


<input type="radio" name="choice1" value="0" style="height:20px; width:20px;" required class="form-check-input"/>

<?php }?>

ผมเขียนแสดงคำถามประเมินไว้ 25 ข้อ พอประเมินแล้ว จะให้แสดงค่าที่เลือกไว้ในเรดิโอ ของรหัสเด็กที่รับค่ามา 

คือถ้าไม่ใช้ loop for วนแสดงคำถาม เขียนระบุไปเป็นข้อๆเลย 25 ข้อ ก็แสดงได้ตามปกติ แต่มาวนแสดงคำถาม ก็เลยงงๆ รบกวนขอคำแนะนำด้วยครับ



Suthon77 202.129.29.xxx 29-05-2020 09:06:27

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

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


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


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

 ความคิดเห็นที่ 1
เราควรเก็บค่าเป็นตัวเลข อ้างอิงแทนน่าจะเหมาะสมกว่า ตอนบันทึกข้อมูล
และก็สามารถบันทึกเป็นฟิลด์เดียวได้
เช่น 1 เป็น  ใส่ใจความรู้สึกของผู้อื่น และ 2 เป็น อยู่ไม่สุข เคลื่อนไหวมาก ไม่สามารถอยู่นิ่งได้นาน
สมมติเช่น มี 5 ข้อ เราก็เก็บค่าเป็น
11212
เวลานำมาใช้ เราก็แยกแต่ละค่าเป็น array เช่นอาจใช้ str_split
 
$choice = "11211";
$arr_choice = str_split($choice); // ตอนเรียกใช้
print_r($arr_choice);
 
Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 1
    [4] => 1
)
 
ส่วนวิธีการแสดง ถ้าจากโค้ด ก็ลองใช้เป้น ต่อ string อ้างอิงฟิลด์ น่าจะได้ เพราะรูปแบบฟิลด์ก็สัมพันธ์กับ
ตัวเลขวนลูป โดยเราก็วนลูปปกติ ส่วนค่าจากฟิลด์ ก็ใช้เป็น
 
$row['choice'.$i]


ninenik 223.24.95.xxx 29-05-2020
 ความคิดเห็นที่ 2
$row['choice'.$i] พอจะเห็นแนวทางเลยครับ ขอบคุณมากครับ


suthon77 202.129.29.xxx 29-05-2020 12:41
 ความคิดเห็นที่ 3
แต่จะไปลอง str_split ด้วย ขอบคุณอีกครั้งครับ


suthon77 1.47.69.xxx 29-05-2020 21:23
 ความคิดเห็นที่ 4

ทำได้แล้วครับ

ทั้งแบบนี้ $row['choice'.$i]
และใช้ str_split
$score=array();
for($i=0;$i<=52;$i++){
$score=str_split($row->evaluate_score);
}
เวลาเช็คกับเรดิโอก็ if ($score[$i]==$point1)echo 'checked'; 

สุดยอดมากได้ เงินเดือนขึ้นแน่เลย 555
ขอบคุณคุณนิคมากเลย ช่วยชีวิตผมอีกแล้ว



suthon77 202.129.29.xxx 30-05-2020 10:05
1






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