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,037

HOME > PHP > PHP Forum > ปัญหาเกี่ยวกับการแสดงผลของแบบฟอร์มโดยหัวข้อหลักและหัวข้อย่อยของแบบสอบถามดึงจากฐานข้อมูลครับ



 

ปัญหาเกี่ยวกับการแสดงผลของแบบฟอร์มโดยหัวข้อหลักและหัวข้อย่อยของแบบสอบถามดึงจากฐานข้อมูลครับ

 



Topic : 109166



โพสกระทู้ ( 4 )
บทความ ( 0 )



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




ปัญหาเกี่ยวกับการแสดงผลของแบบฟอร์มครับ

หัวข้อหลักและหัวข้อย่อยของแบบสอบถามดึงจากฐานข้อมูล

นี่คือ Mockup ต้นแบบร่วมกับ Bootstrap ครับ

formsimple

และนี่หลังจากที่ดึงจากฐานข้อมูลมาแสดงผล

formfix

ปัญหาคือ

จุดที่ 1 อยากให้ตัวเลขนับตามจำนวนหัวข้อหลัก (กรณีตัวอย่างคือ 1-8)

จุดที่ 2 - อยากให้หัวข้อหลักแสดงผลครั้งเดียว
- อยากให้พื้นที่ 3 แถวรวมเป็นแถวเดียว

จุดที่ 3 อยากให้หัวข้อย่อย แสดงดังนี้ 1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 3.1, ...

รายละเอียดฐานข้อมูล
tb_question_type
qt

tb_question
q

หน้าแบบฟอร์มครับ

Code (PHP)
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <!-- This file has been downloaded from Bootsnipp.com. Enjoy! -->
        <title>Admin Nav Bar - black - Bootsnipp.com</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
        <style type="text/css">
        </style>
        <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
        <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </head>
    <body>
        <div class="container">
            <div class="row-fluid">
                <div class="span9">
                    <?php
                    include_once 'include/connect.php';
                    $sql = "SELECT tb_question_type.question_type_id,tb_question_type.question_type_name,tb_question.question_id,tb_question.question_name
                            FROM tb_question
                            INNER JOIN tb_question_type ON tb_question_type.question_type_id = tb_question.question_type_id
                            ORDER BY tb_question_type.question_type_id";
                    $rs = mysql_query($sql);
                    ?>

                    <div class="page-header">
                        <h3><i class="icon-home"></i> แบบประเมิน คุณลักษณะอันพึงประสงค์ 8 ด้าน</h3>
                    </div>

                    <?php if (mysql_num_rows($rs) != 0) { ?> <!--นับจำนวน reccord หากไม่เท่ากับ 0 ให้ทำงานต่อ-->

                        <h4>
                            <i class="icon-hand-right"></i> คำชี้แจง : ให้นักเรียนเลือกตัวเลือกที่ตรงกับพฤติกรรมของนักเรียนเอง
                        </h4>

                        <form method="post" action="question_save.php">

                            <table class="table table-bordered">
                                <thead>
                                    <tr>
                                        <th rowspan="2">ด้านคุณลักษณะ<br>อันพึงประสงค์</th>
                                        <th rowspan="2">รายการประเมิน</th>
                                        <th colspan="5">ระดับการประเมิน</th>
                                    </tr>
                                    <tr>
                                        <th>บ่อยมาก</th>
                                        <th>บ่อย</th>
                                        <th>ปานกลาง</th>
                                        <th>บางครั้ง</th>
                                        <th>ไม่เคย</th>
                                    </tr>
                                </thead>
                                <tbody>

                                    <?php
                                    $qt = 0;
                                    $q = 0;
                                    $c = 0;
                                    while ($r = mysql_fetch_assoc($rs)):
                                        $qt++;
                                        $q++;
                                        $c++;
                                        ?>
                                        <tr>
                                            <td align="center"><?php echo $qt . '. ' . $r['question_type_name']; ?></td>
                                            <td><?php echo $qt . '.' . $q . ' ' . $r['question_name']; ?></td>
                                            <td>
                                                <label class="control radio">
                                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="4">
                                                    <span class="control-indicator"></span>
                                                </label>
                                            </td>
                                            <td>
                                                <label class="control radio">
                                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="3">
                                                    <span class="control-indicator"></span>
                                                </label>
                                            </td>
                                            <td>
                                                <label class="control radio">
                                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="2">
                                                    <span class="control-indicator"></span>
                                                </label>
                                            </td>
                                            <td>
                                                <label class="control radio">
                                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="1">
                                                    <span class="control-indicator"></span>
                                                </label>
                                            </td>
                                            <td>
                                                <label class="control radio">
                                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="0">
                                                    <span class="control-indicator"></span>
                                                </label>
                                            </td>
                                        </tr>

                                    <?php endwhile ?> <!-- end loop for -->

                                </tbody>
                            </table>
                            <div class="control-group">
                                <!-- Button -->
                                <div class="controls">
                                    <span class="pull-right">
                                        <input type="submit" class="btn btn-success" value="บันทึกข้อมูล">
                                        <input type="reset" class="btn btn-danger" value="ล้างข้อมูล">
                                    </span>
                                </div>
                            </div>
                        </form>
                        <h5><em class="text-info">เกณฑ์การให้คะแนน</em> 
                            บ่อยมาก = <span class="badge badge-inverse">4</span>
                            บ่อย = <span class="badge badge-success">3</span>
                            ปานกลาง = <span class="badge badge-info">2</span> 
                            บางครั้ง = <span class="badge badge-warning">1</span> 
                            ไม่เคย = <span class="badge badge-important">0</span>
                        </h5>
                    <?php } else { ?>
                        <h4><i class="icon-info-sign"></i> ไม่พบข้อมูล</h4>
                    <?php } ?>
                </div><!--/span-->
            </div><!--/row-->
        </div><!--/.fluid-container-->
    </body>
</html>




Tag : PHP, MySQL, HTML/CSS, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-06-13 20:56:29 By : gvincent View : 2148 Reply : 6
 

 

No. 1



โพสกระทู้ ( 1,666 )
บทความ ( 0 )



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


ผมลองแก้แบบมั่วๆดูนะ ขี้เกียจไปปรับคิวรี่ข้้างบนแก้ output เอาละกันง่ายดี หลักๆประมาณนี้

1. เก็บตัวแปร $r['question_type_name'] ใส่ตัวแปร $X ไว้เพื่อตรวจสอบ
2. ถ้า $X = $r['question_type_name'] ไม่ต้องแสดงอะไรออกมา
3. ถ้า $X = $r['question_type_name'] $q ++ ถ้าไม่ไช่ $q=1


ลองดูนะครับผมมโนเอาล้วนๆ ลบบรรทัดที่ 56-66 ออกไปแล้วใส่นี่ลงไป
Code (PHP)
<? PHP
$qt = 0;
$q = 0;
//$c ไม่จำเป็นต้องประกาศ
$X="";  //ให้ X เท่ากับค่าว่าง
  while ($r = mysql_fetch_assoc($rs)):
$Y="YES"; //ให้ Y เท่ากับ YESไว้ก่อนเมื่อเข้า Loop
  if ($X !== $r['question_type_name'])  {
$qt++;  // +1 เมื่อค่าของ X ไม่เท่ากับ question_type_name
$q=1;  // ให้ q = 1  เมื่อค่าของ X ไม่เท่ากับ question_type_name
$X=$r['question_type_name']; //ให้ X =  question_type_name เพื่อจดจำไว้ใช้ในรอบต่อไป
}else{ 
//เมื่อค่าของ X เท่ากับ question_type_name
$q++;  //ให้ q + 1  เมื่อค่าของ X เท่ากับ question_type_name  
$Y="NO"; 
} //ปิด if


$c=$qt."_".$q; // ระบุชื่อให้ตัวแปร C ex เมื่อนำไปใช้งานในข้อ1.1 จะถูกเรียกชื่อเป็น ch_1_1
?>
<tr>
<?PHP 
//ถ้าตัวแปร Y = NO ให้สร้างตารางเปล่าๆมาหลอก 
//ถ้าตัวแปร Y = YES ให้สร้างตารางหัวข้อออกมา
if ($Y=="NO")  { ?>  <td align="center"> </td> <?PHP  } ?>
if ($Y=="YES") { ?> <td align="center"><?php echo $qt . '. ' . $r['question_type_name']; ?></td> <?PHP  } ?>









ประวัติการแก้ไข
2014-06-13 21:58:18
2014-06-13 21:58:51
2014-06-13 22:01:19
2014-06-13 22:03:09
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-13 21:56:20 By : meannerss
 


 

No. 2



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


อันนี้ระบบ SAR ใช่ไม๊ครับ ..
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-13 22:02:38 By : deawx
 

 

No. 3



โพสกระทู้ ( 1,666 )
บทความ ( 0 )



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


5 5 ผมก็งงครับ แต่สนุกดีนะไล่ TR TDแบบใช้จินตนาการ จริงๆแล้วมันมีวิธีง่ายกว่าคือขึ้นไปปรับคิวรี่เป็น GROUP BY ก่อนแล้วค่อยมาเรียง ทำคิวรี่ 2 ครั้งไม่ต้องจอย แต่ลองโค้ดผมด้านบนดูครับผมว่าน่าจะเวิร์คนะ จากการมโนล้วนๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-13 22:05:22 By : meannerss
 


 

No. 4



โพสกระทู้ ( 4 )
บทความ ( 0 )



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : deawx เมื่อวันที่ 2014-06-13 22:02:38
รายละเอียดของการตอบ ::
อันนี้ระบบ SAR ใช่ไม๊ครับ ..


@deawx ยังไม่ถึงระดับนั้นครับ ทำแบบประเมินของสายระดับชั้นในโรงเรียนเฉยๆครับ


ประวัติการแก้ไข
2014-06-13 23:11:41
2014-06-14 03:11:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-13 23:09:35 By : gvincent
 


 

No. 5



โพสกระทู้ ( 4 )
บทความ ( 0 )



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : meannerss เมื่อวันที่ 2014-06-13 22:05:22
รายละเอียดของการตอบ ::
5 5 ผมก็งงครับ แต่สนุกดีนะไล่ TR TDแบบใช้จินตนาการ จริงๆแล้วมันมีวิธีง่ายกว่าคือขึ้นไปปรับคิวรี่เป็น GROUP BY ก่อนแล้วค่อยมาเรียง ทำคิวรี่ 2 ครั้งไม่ต้องจอย แต่ลองโค้ดผมด้านบนดูครับผมว่าน่าจะเวิร์คนะ จากการมโนล้วนๆ


@meannerss ขอแนวคิด + วิธีการ หน่อยได้มั้ยครับ เผื่อชีวิตจะโปรแกรมเมอร์ จะสะดวกขึ้นอีกสักนิดก็ยังดี


ประวัติการแก้ไข
2014-06-14 03:10:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-13 23:14:26 By : gvincent
 


 

No. 6



โพสกระทู้ ( 4 )
บทความ ( 0 )



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


@deawx ขอบคุณมากๆ ครับ ได้ตามนี้ครับ
form3

Code (PHP)
<?php
if (!empty($_GET['url'])) { // ตรวจสอบ url
    include_once $_GET['url'];
} else {

    $sql = "SELECT tb_question_type.question_type_id,tb_question_type.question_type_name,tb_question.question_id,tb_question.question_name
                            FROM tb_question
                            INNER JOIN tb_question_type ON tb_question_type.question_type_id = tb_question.question_type_id
                            ORDER BY tb_question_type.question_type_id";
    $rs = mysql_query($sql);
    ?>

    <div class="page-header">
        <h3><i class="icon-home"></i> แบบประเมิน คุณลักษณะอันพึงประสงค์ 8 ด้าน</h3>
    </div>

    <?php if (mysql_num_rows($rs) != 0) { ?> <!--นับจำนวน reccord หากไม่เท่ากับ 0 ให้ทำงานต่อ-->

        <h4>
            <i class="icon-hand-right"></i> คำชี้แจง : ให้นักเรียนเลือกตัวเลือกที่ตรงกับพฤติกรรมของนักเรียนเอง
        </h4>

        <form method="post" action="question_save.php">

            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th rowspan="2">ด้านคุณลักษณะ<br>อันพึงประสงค์</th>
                        <th rowspan="2">รายการประเมิน</th>
                        <th colspan="5">ระดับการประเมิน</th>
                    </tr>
                    <tr>
                        <th>บ่อยมาก</th>
                        <th>บ่อย</th>
                        <th>ปานกลาง</th>
                        <th>บางครั้ง</th>
                        <th>ไม่เคย</th>
                    </tr>
                </thead>
                <tbody>

                    <?php
                    $qt = 0;
                    $q = 0;
                    //$c ไม่จำเป็นต้องประกาศ
                    $X = "";  //ให้ X เท่ากับค่าว่าง
                    while ($r = mysql_fetch_assoc($rs)):
                        $Y = "YES"; //ให้ Y เท่ากับ YESไว้ก่อนเมื่อเข้า Loop
                        if ($X !== $r['question_type_name']) {
                            $qt++;  // +1 เมื่อค่าของ X ไม่เท่ากับ question_type_name
                            $q = 1;  // ให้ q = 1  เมื่อค่าของ X ไม่เท่ากับ question_type_name
                            $X = $r['question_type_name']; //ให้ X =  question_type_name เพื่อจดจำไว้ใช้ในรอบต่อไป
                        } else {
                            //เมื่อค่าของ X เท่ากับ question_type_name
                            $q++;  //ให้ q + 1  เมื่อค่าของ X เท่ากับ question_type_name 
                            $Y = "NO";
                        } //ปิด if
                        $c = $qt . "_" . $q; // ระบุชื่อให้ตัวแปร C ex เมื่อนำไปใช้งานในข้อ1.1 จะถูกเรียกชื่อเป็น ch_1_1
                        ?>
                        <tr>
                            <?php
                            //ถ้าตัวแปร Y = NO ให้สร้างตารางเปล่าๆมาหลอก
                            //ถ้าตัวแปร Y = YES ให้สร้างตารางหัวข้อออกมา
                            if ($Y == "NO") {
                                ?>  <td> </td> <?php
                            }
                            if ($Y == "YES") {
                                ?> <td>
                                <?php echo $qt . '. ' . $r['question_type_name']; ?></td> 
                            <?php } ?> <!-- ปิด if -->
                            <td><?php echo $qt . '.' . $q . ' ' . $r['question_name']; ?></td>
                            <td>
                                <label class="control radio">
                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="4">
                                    <span class="control-indicator"></span>
                                </label>
                            </td>
                            <td>
                                <label class="control radio">
                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="3">
                                    <span class="control-indicator"></span>
                                </label>
                            </td>
                            <td>
                                <label class="control radio">
                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="2">
                                    <span class="control-indicator"></span>
                                </label>
                            </td>
                            <td>
                                <label class="control radio">
                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="1">
                                    <span class="control-indicator"></span>
                                </label>
                            </td>
                            <td>
                                <label class="control radio">
                                    <input type="radio" id="radio1" name="<?php echo 'ch' . $c; ?>" value="0">
                                    <span class="control-indicator"></span>
                                </label>
                            </td>
                        </tr>

        <?php endwhile ?> <!-- end loop for -->

                </tbody>
            </table>
            <div class="control-group">
                <!-- Button -->
                <div class="controls">
                    <span class="pull-right">
                        <input type="submit" class="btn btn-success" value="บันทึกข้อมูล">
                        <input type="reset" class="btn btn-danger" value="ล้างข้อมูล">
                    </span>
                </div>
            </div>
        </form>
        <h5><em class="text-info">เกณฑ์การให้คะแนน</em> 
            บ่อยมาก = <span class="badge badge-inverse">4</span>
            บ่อย = <span class="badge badge-success">3</span>
            ปานกลาง = <span class="badge badge-info">2</span> 
            บางครั้ง = <span class="badge badge-warning">1</span> 
            ไม่เคย = <span class="badge badge-important">0</span>
        </h5>

    <?php } else { ?>
        <h4><i class="icon-info-sign"></i> ไม่พบข้อมูล</h4>
    <?php } ?>

<?php } ?> <!-- end ตรวจสอบ url -->



ประวัติการแก้ไข
2014-06-14 12:07:21
2014-06-14 12:11:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-06-13 23:19:43 By : gvincent
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปัญหาเกี่ยวกับการแสดงผลของแบบฟอร์มโดยหัวข้อหลักและหัวข้อย่อยของแบบสอบถามดึงจากฐานข้อมูลครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่