|
|
|
ปัญหาเกี่ยวกับการแสดงผลของแบบฟอร์มโดยหัวข้อหลักและหัวข้อย่อยของแบบสอบถามดึงจากฐานข้อมูลครับ |
|
|
|
|
|
|
|
ปัญหาเกี่ยวกับการแสดงผลของแบบฟอร์มครับ
หัวข้อหลักและหัวข้อย่อยของแบบสอบถามดึงจากฐานข้อมูล
นี่คือ Mockup ต้นแบบร่วมกับ Bootstrap ครับ
และนี่หลังจากที่ดึงจากฐานข้อมูลมาแสดงผล
ปัญหาคือ
จุดที่ 1 อยากให้ตัวเลขนับตามจำนวนหัวข้อหลัก (กรณีตัวอย่างคือ 1-8)
จุดที่ 2 - อยากให้หัวข้อหลักแสดงผลครั้งเดียว
- อยากให้พื้นที่ 3 แถวรวมเป็นแถวเดียว
จุดที่ 3 อยากให้หัวข้อย่อย แสดงดังนี้ 1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 3.1, ...
รายละเอียดฐานข้อมูล
tb_question_type
tb_question
หน้าแบบฟอร์มครับ
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
|
|
|
|
|
|
Date :
2014-06-13 20:56:29 |
By :
gvincent |
View :
2148 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองแก้แบบมั่วๆดูนะ ขี้เกียจไปปรับคิวรี่ข้้างบนแก้ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ระบบ SAR ใช่ไม๊ครับ ..
|
|
|
|
|
Date :
2014-06-13 22:02:38 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 5 ผมก็งงครับ แต่สนุกดีนะไล่ TR TDแบบใช้จินตนาการ จริงๆแล้วมันมีวิธีง่ายกว่าคือขึ้นไปปรับคิวรี่เป็น GROUP BY ก่อนแล้วค่อยมาเรียง ทำคิวรี่ 2 ครั้งไม่ต้องจอย แต่ลองโค้ดผมด้านบนดูครับผมว่าน่าจะเวิร์คนะ จากการมโนล้วนๆ
|
|
|
|
|
Date :
2014-06-13 22:05:22 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@deawx ขอบคุณมากๆ ครับ ได้ตามนี้ครับ
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|