Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ขอคำแนะนำทำระบบข้อสอบ / แบบฝึกหัด / ควิซ(Quiz) หน่อยค่ะ



 

ขอคำแนะนำทำระบบข้อสอบ / แบบฝึกหัด / ควิซ(Quiz) หน่อยค่ะ

 



Topic : 133950

Guest




สวัสดีค่ะพี่ๆรบกวนขอคำแนะนำหน่อยค่ะ คือว่าหนูจะสร้างหน้าทำข้อสอบ/แบบฝึกหัดทางฝั่งของนักศึกษา
ปัญหาของหนูคือต้องการให้ในหนึ่งหน้ามีข้อสอบหลายข้อค่ะ พอกดส่งคำตอบแล้วสามารถกลับมาแก้ไขคำตอบได้ด้วยค่ะ
.
หนูจะสามารถทำให้คำตอบใน radio มันค้างอยู่และเปลี่ยนหน้าไปโดยไม่ต้องบันทึกลง DB ได้รึเปล่าคะ
ในตอนแรกหนูทำสุ่มข้อและสุ่มคำตอบด้วยค่ะ แต่พอเปลี่ยนหน้าแล้วข้อสอบมันก็สลับไปใหม่หมด ถ้าพอจะมีวิธีสุ่มที่ไม่ใช่
ORDER BY rand() แนะนำด้วยนะคะ
.
หนูพยายามศึกษาในเว็บบอร์ดจากกระทู้เก่าๆและจากต่างประเทศแล้วค่ะ แต่ก็ยังไม่เจอวิธีที่ใช่เลย อาจเพราะของหนูมันค่อนข้างซับซ้อน
หรือว่าหนูยังมองอัลกอลิธึมไม่ออก ยังไงรบกวนพี่ๆด้วยนะคะ ขอเป็นตัวอย่างหรือแนะแนวว่าควรทำยังไงก็ได้ค่ะ
.
ถ้าหนูอธิบายงงๆ หรือผิดพลาดประการใด ขอโทษมา ณ ที่นี้ด้วยนะคะ ขอบคุณมากๆเลยค่ะ
.
Code (PHP)
// ในส่วนนี้เพื่อนแนะนำว่าให้เก็บเป็น SESSION ไว้เรียกคำตอบที่ตอบจาก radio
// แต่พอเปลี่ยนหน้ามันก็บันทึกทับไปค่ะ
foreach ($_POST as $key => $value[]) { }
    $_SESSION["ans"] = $value;
for ($is = 0; $is < count($_SESSION["ans"]); $is++) {
    echo $_SESSION["ans"][$is];
}

$total_records_per_page = 4;
$offset = ($page_no - 1) * $total_records_per_page;
$previous_page = $page_no - 1;
$next_page = $page_no + 1;
$result_count = mysqli_query(
    $conn,
    "SELECT COUNT(*) As total_records FROM `exam_tch` WHERE course_id = '1' AND ID_exam_group = '13'"
);
$total_records = mysqli_fetch_array($result_count);
$total_records = $total_records['total_records'];
$total_no_of_pages = ceil($total_records / $total_records_per_page);
$second_last = $total_no_of_pages - 1;
$result = mysqli_query(
    $conn,
    "SELECT * FROM `exam_tch` WHERE course_id = '1' AND ID_exam_group = '13' 
    LIMIT $offset, $total_records_per_page"
);
?>
<form name="xcheck" method="post" action="testcrud.php">
    <?
    $i = 0;
    if ($page_no > 1) {
        $i = ($total_records_per_page * $page_no) - $total_records_per_page;
    }
    while ($row = mysqli_fetch_array($result)) {
        $i++;
        echo '<div class="tab">';
        echo $i . '). ' . $row["exam_ques"] . '<br><br>';
        ?>
        <div class="form-check">
            <input class="form-check-input" type="radio" id="choice1.<?php echo $row['ID_exam_tch'] ?>"
            name="choice.<?php echo $row['ID_exam_tch']; ?>" value="1">
            <label class="form-check-label" for="choice1.<?php echo $row['ID_exam_tch'] ?>">
                <?php echo $row['exam_correct'] ?>
            </label>
        </div>
        <div class="form-check">
            <input class="form-check-input" type="radio" id="choice2.<?php echo $row['ID_exam_tch'] ?>"
            name="choice.<?php echo $row['ID_exam_tch']; ?>" value="2">
            <label class="form-check-label" for="choice2.<?php echo $row['ID_exam_tch'] ?>">
                <?php echo $row['exam_w_1'] ?>
            </label>
        </div>
        <div class="form-check">
            <input class="form-check-input" type="radio" id="choice3.<?php echo $row['ID_exam_tch'] ?>"
            name="choice.<?php echo $row['ID_exam_tch']; ?>" value="3">
            <label class="form-check-label" for="choice3.<?php echo $row['ID_exam_tch'] ?>">
                <?php echo $row['exam_w_2'] ?>
            </label>
        </div>
        <div class="form-check">
            <input class="form-check-input" type="radio" id="choice4.<?php echo $row['ID_exam_tch'] ?>"
            name="choice.<?php echo $row['ID_exam_tch']; ?>" value="4">
            <label class="form-check-label" for="choice4.<?php echo $row['ID_exam_tch'] ?>">
                <?php echo $row['exam_w_3'] ?>
            </label>
        </div>
        <br>
        <hr>

    <?php
    }

    echo '</div>';
    mysqli_close($con);

    ?> <?
        if ($page_no >= $total_no_of_pages) { ?>
        <input type="submit" name="btnsubmit" class="button" value="ส่งคำตอบแล้วสิ้นสุดการทำแบบทดสอบ">
    <?php } else {
        if ($page_no < $total_no_of_pages) { ?>
            <input type="submit" class="button" value="ถัดไป" formaction="?page_no=<?php echo $next_page ?>">
        <?php }
    }
    ?>
</form>




Tag : PHP, MySQL, HTML5







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-07-28 18:31:20 By : bear420 View : 826 Reply : 1
 

 

No. 1



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



สถานะออฟไลน์


ได้ครับ ใช้ session เก็บครับ

ทุกครั้งที่ เปลี่ยนหน้า ก็ส่งค่าที่ ตอบ ไว้แล้ว มาเก็บไว้ด้วยครับ

หรือทุกครั้งที่ตอบ ก็ส่งคำตอบมาเก็บไว้ ด้วย ajax ก็ได้






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-28 22:25:22 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอคำแนะนำทำระบบข้อสอบ / แบบฝึกหัด / ควิซ(Quiz) หน่อยค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่