check radio buttom คือว่าอันนี้เป็นการทำแบบฝึกหัดอ่ะค่ะ ทั้งหมด 10 ข้อ อยากให้เวลาที่กดปุ่ม
ใครมีวิธีอื่นอีกไหมคะ มีโค้ดตัวอย่างอีกไหมคะ ช่วยหน่อยค่ะ
Date :
2009-08-22 20:09:44
By :
pochiiez
คุณเอี่ยว(Rest)คะ เรางงว่าลิงค์ที่คุณให้มามันมีหลาย คห ไม่รู้ของคุณคือ คห ไหนอ่ะคะ
อีกอย่าง คือเราไม่รู้ว่าจะเอาชื่อของ radio ไปเช็คยังไงอ่ะค่ะ เพราะชื่อ radio ของเรามันเป็น id ( select_$qid) ของเลขที่ข้ออ่ะค่ะ คือเรามีทั้งหมด 15 ข้อใน db แต่สุ่มเอามา10 ข้อ แล้ว 10 ข้อที่เอามานี้ก็ไม่เรียงลำดับด้วยเลขที่ข้อมากไปน้อย หรือ น้อยไปมากสักอย่างเลยอ่ะค่ะ
ผู้รู้ท่านไหนทราบ แนะนำหน่อยนะคะ จะแย่อยู่แล้ว T_T
Date :
2009-08-22 21:19:03
By :
pochiiez
ผมชื่อ pjgunner ครับ
ลองหาดูในส่วนของผมแต่ละข้อจะครอบด้วย div ที่มี id เริ่มต้น ด้วย choice ครับ
อยากให้เปลี่ยน methode focus() เป็น scrollIntoView(false); ด้วยนะ
Date :
2009-08-22 21:28:03
By :
pjgunner
ตรง $(occur).focus();
เปลี่ยนเป็น $(occur)[0].scrollIntoView(false); ด้วยนะครับ
Date :
2009-08-22 21:29:34
By :
pjgunner
คุณเอี่ยว(Rest)คะ คุณช่วยดูโค้ดข้างบนของเราหน่อยได้มั้ยคะ ว่าของเรานี่จะเอาชื่อเรดิโออะไรมาเช็ค เรางงมากๆ ไม่รุจาเอาชื่ออะไรมาเช็ค แล้วของเราก้อไม่มีแท็ก div ด้วย ช่วยดูโค้ดของเราประกอบหน่อยได้มั้ยคะ
เราลองทำอีกแบบ อยากให้ช่วยดูหน่อยว่าถูกไหม แต่เราลองรันแล้วก้อยังไม่เช็คอยู่ดี
อันนี้เป็นโค้ดที่เราลองทำดู คนละแบบกับคุณ ค่า
Code (PHP)
<?php
session_start();
ob_start();
include "connect.php";
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
function checkRadio(strPage)
{ //อันนี้คือเราไม่รุว่ามันจะแรนด้อมข้อไหนมา เราเลยกันไว้ทุกข้อที่มีเลย อิอิ เถือกๆเลยอ่ะ
if(document.form1.select_1.checked == false || document.form1.select_2.checked == false || document.form1.select_3.checked == false || document.form1.select_4.checked == false || document.form1.select_5.checked == false || document.form1.select_6.checked == false || document.form1.select_7.checked == false || document.form1.select_8.checked == false || document.form1.select_9.checked == false || document.form1.select_10.checked == false || document.form1.select_11.checked == false || document.form1.select_12.checked == false || document.form1.select_13.checked == false || document.form1.select_14.checked == false || document.form1.select_15.checked == false)
{
alert('คุณยังตอบแบบทดสอบไม่ครบทุกข้อ');
return false;
}
document.form1.submit();
}
</script>
<style type="text/css">
<!--
.style1 {
font-family: Tahoma;
font-size: 18px;
color: #FFFFFF;
}
-->
</style>
<?
$username = $_SESSION['usr'];
$ex_id = $_GET['ex_id'];
$sql = "select * from question where ex_id = '$ex_id' order by rand() LIMIT 10"; //order by ques_id LIMIT 0,10"
$db_query = mysql_query($sql) or die("Select error");
$count = mysql_num_rows($db_query);
//$result = mysql_fetch_array($db_query);
if($count!=10)
{
echo "<script>alert('ขออภัย ขณะนี้ยังไม่สามารถทำแบบทดสอบได้ เนื่องจากยังมีแบบฝึกหัดไม่ครบ');history.back();</script>";
}
else
{ ?>
<form id="form1" name="form1" method="post" action="cal_score.php" onsubmit="JavaScript:return checkRadio();">
<table width="600">
<tr bgcolor="#000099">
<td><span class="style1"><center>แบบทดสอบบทที่ <? echo $ex_id ?></center></span></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
<? $n=1;
while ($r=mysql_fetch_array($db_query))
{
$qid=$r[ques_id];
$ques=$r[question];
$c1=$r[choice1];
$c2=$r[choice2];
$c3=$r[choice3];
$c4=$r[choice4];
echo
"<table width='600'>
<tr bgcolor='#B1C3D9'>
<td><font class='font' size='3pt'><B>ข้อ $n. $ques </B></td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='select_$qid' VALUE='1'> $c1</td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='select_$qid' VALUE='2'> $c2 </td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='select_$qid' VALUE='3'> $c3 </td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='select_$qid' VALUE='4'> $c4 </td>
</tr>
<tr>
<td><INPUT TYPE='hidden' NAME='total_que[]' VALUE='$qid'></td>
</tr>
</font>
</table>
<HR>";
$n=$n+1;
}?>
<label>
<div align="center">
<input type="submit" name="Submit" value="ตรวจคำตอบ" />
</div>
</label>
<input type="hidden" name="ex_id" value="<? echo $ex_id;?>" />
<input type="hidden" name="ques_id" value="<? echo $qid;?>" />
</form>
<? }
mysql_close();
ob_end_flush();
?>
Date :
2009-08-22 21:48:56
By :
pochiiez
code ใน บล็อค if มันก็ต้องเข้าแน่ครับ เพราะ มันต้องมีอันที่เป็น false เพราะมันเลือกได้แค่ 1 ชอยซ์ ต่อ 1 ข้อ ดังนั้น อีก 3 ตัวเลือกก็ต้อง false ครับ
Date :
2009-08-22 22:08:35
By :
pjgunner
แล้วทำไงดีอ่ะค่ะ หมดปัญญาจิงๆ
T_T
Date :
2009-08-22 22:43:05
By :
pochiiez
จ๊ากยังไม่ได้ทดสอบกับ ie ไม่รอดนี่หว่าเหอๆ
Date :
2009-08-22 22:53:59
By :
num
ขอโทษนะคะ คุณ num ช่วยดัดแปลงให้หน่อยได้มั้ยคะ คือว่างงกับชื่อของ radio group หรือว่า id ของ radio group อ่ะค่ะ เราไม่รู้ว่าของเรามันคืออันไหน แล้วก้องงกับ hidden field ด้วยค่ะ
คือทำไม่ได้อ่ะค่ะ ช่วยประยุกต์ตามโค้ดที่เราแปะไว้ให้หน่อยได้มั้ยคะ จะขอบคุณมากกกกกกกเลยค่ะ นั่งงมนานมากแล้วอ่ะคะ บอกตามตรง เราโง่จิงๆ อิอิ
ช่วยหน่อยได้มั้ยคะ T_T
ขอบคุณที่เสียเวลานะคะ
Date :
2009-08-22 23:47:00
By :
pochiiez
ยังไม่ได้ทดสอบกับ database นะครับ วันนี้ผมไปข้างนอกด้วยคงไม่ได้มาช่วยแก้ละครับ :D
<?php
session_start();
ob_start();
include "connect.php";
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
window.onload = function(){
var f1 = document.form1;
f1.onsubmit = function(){
var radioName = 'c';
var name = ''; //c[1],c[2] ชื่อของ radio group
var number = 0; //1,2 id ของ radio group
var exam = [];
for(var i=0; i<f1.elements.length; i++){
name = f1.elements[i].name;
if (name.indexOf(radioName+'[')!=-1){
number = name.substring(radioName.length+1,name.length-1);
exam[number] = name;
}
}
var checked = 0;
var unanswer = [];
for(var n in exam){
checked = 0;
for(var choice=0;choice<f1[exam[n]].length;choice++){
if (f1[exam[n]][choice].checked){
checked += 1;
}
}
if (!checked){
unanswer.push(f1['q['+n+']'].value);
}
}
if (unanswer.length > 0){
alert('ยังไม่ตอบข้อ '+unanswer.join(','));
return false;
}
return true;
}
}
</script>
<style type="text/css">
<!--
.style1 {
font-family: Tahoma;
font-size: 18px;
color: #FFFFFF;
}
-->
</style>
<?
$username = $_SESSION['usr'];
$ex_id = $_GET['ex_id'];
$sql = "select * from question where ex_id = '$ex_id' order by rand() LIMIT 10"; //order by ques_id LIMIT 0,10"
$db_query = mysql_query($sql) or die("Select error");
$count = mysql_num_rows($db_query);
//$result = mysql_fetch_array($db_query);
if($count!=10)
{
echo "<script>alert('ขออภัย ขณะนี้ยังไม่สามารถทำแบบทดสอบได้ เนื่องจากยังมีแบบฝึกหัดไม่ครบ');history.back();</script>";
}
else
{ ?>
<?
if (!empty($_POST['c'])){
echo '<pre>';
foreach($_POST['c'] as $number=>$answer){
echo '<br />',$_POST['q'][$number],')',$number,') ',$answer;
}
echo '</pre>';
}
?>
<form id="form1" name="form1" method="post" action="cal_score.php">
<table width="600">
<tr bgcolor="#000099">
<td><center><span class="style1">แบบทดสอบบทที่ <? echo $ex_id ?></span></center></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
<? $n=1;
while ($r=mysql_fetch_array($db_query))
{
$qid=$r[ques_id];
$ques=$r[question];
$c1=$r[choice1];
$c2=$r[choice2];
$c3=$r[choice3];
$c4=$r[choice4];
echo
"
<INPUT TYPE='hidden' NAME='q[$qid]' VALUE='$n'>
<table width='600'>
<tr bgcolor='#B1C3D9'>
<td><font class='font' size='3pt'><B>ข้อ $n. $ques </B></td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='c[$qid]' VALUE='1'> $c1</td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='c[$qid]' VALUE='2'> $c2 </td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='c[$qid]' VALUE='3'> $c3 </td>
</tr>
<tr>
<td><INPUT TYPE='radio' NAME='c[$qid]' VALUE='4'> $c4 </td>
</tr>
<tr>
<td><INPUT TYPE='hidden' NAME='total_que[]' VALUE='$qid'></td>
</tr>
</font>
</table>
<HR>";
$n=$n+1;
}?>
<div align="center">
<input type="submit" name="Submit" value="ตรวจคำตอบ" />
</div>
<input type="hidden" name="ex_id" value="<? echo $ex_id;?>" />
<input type="hidden" name="ques_id" value="<? echo $qid;?>" />
</form>
<? }
mysql_close();
ob_end_flush();
?>
Date :
2009-08-23 07:10:21
By :
num
Load balance : Server 04