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 > รบกวนพี่วินและพี่คนอื่นๆที่เคยทำแบบทดสอบ ตอนนี้ทำๆไปแต่ติดที่ต้องแบ่งเป็นข้อละหน้า พอถึงหน้าสุดท้ายให้คำณวนคะแนนที่ได้ครับ



 

รบกวนพี่วินและพี่คนอื่นๆที่เคยทำแบบทดสอบ ตอนนี้ทำๆไปแต่ติดที่ต้องแบ่งเป็นข้อละหน้า พอถึงหน้าสุดท้ายให้คำณวนคะแนนที่ได้ครับ

 



Topic : 105167



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



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




คือทำตามกระทู้นี้ https://www.thaicreate.com/php/forum/065542.html ตอนนี้ถ้าแบบทดสอบอยู่ในหน้าเดียวสามารถทำได้แล้วครับ
แต่ต้องทำไห้แบบทดสอบมีหน้าละข้อ สมมุติ 10 ข้อ ก็ 10 หน้า แล้วกดตรวจคะแนนที่หน้าสุดท้ายแล้วคำนวณคะแนนครับ
โคดที่หน้าทำแบบทดสอบ แบ่งหน้าละข้อได้แล้ว แต่ไม่รู้วิธีตรวจคะแนนและส่งคะแนนไปคำนวณหน้าสุดท้ายครับ

test
<?
	session_start();
	include ("admin/module/inc/php/config.inc.php");
	include ("admin/module/inc/php/function.inc.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="admin/css/korea.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" type="image/x-icon" href="admin/images/icon/favicon.ico">

<title>Quiz 100 items</title>
</head>
<script language="javascript">
function chknull(){
var a=document.formregis;
if(a.name.value==""){
	alert("Please fill out");
	a.name.focus();
	return false;
}else if(a.Lastname.value==""){
	alert("Please fill out");
	a.Lastname.focus();
	return false;
}else if(a.Nickname.value==""){
	alert("Please fill out");
	a.Nickname.focus();
	return false;
}else if(a.Tel.value==""){
	alert("Please fill out");
	a.Tel.focus();
	return false;
}

return true;
}
</script>
<body>
<form name="form1" method="post" action="checkscore.php">
<?
	
	$selectPoint=select("member","Username='".$_SESSION['Username']."'");
	$Bypass=mysql_fetch_array($selectPoint);
	if($_SESSION['Username'] == ""){
		echo "<script>";
		echo "alert('กรุณาล๊อคอินเข้าสู่ระบบ');";
		echo "window.location='index.php';";
		echo "</script>";
	}
?>
<div id="warp">
	<!--- <div id="login"><? include("login.php"); ?></div>  --->
    <div id="clear"></div>
	<div id="header"></div>
    <div id="clear"></div>
    <div id="header-menu"><? include("top_menu.php"); ?></div>
    <div id="clear"></div>
<div id="container">
    	<div id="container-left">
        <form name="from" method="post"  onSubmit="return chknull();"  action="checkscore.php"> 
         
 <?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("quiz_mfes");
$strSQL = "SELECT * FROM quiz ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");

$Num_Rows = mysql_num_rows($objQuery);

$Per_Page = 1;   // Per Page

$Page = $_GET["Page"];
if(!$_GET["Page"])
{
	$Page=1;
}

$Prev_Page = $Page-1;
$Next_Page = $Page+1;

$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
	$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
	$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
	$Num_Pages =($Num_Rows/$Per_Page)+1;
	$Num_Pages = (int)$Num_Pages;
}

$strSQL .=" order  by id ASC LIMIT $Page_Start , $Per_Page";
$objQuery  = mysql_query($strSQL);
$result=mysql_fetch_array($objQuery);
?>

<table width="100%" border="0" align="center">
<tr>
  <td height="18" colspan="5">&nbsp;</td>
</tr>
<tr>
  <td height="25" colspan="5"><input name="id<?=$i;?>" type="hidden" value="<?=$result["id"];?>">&nbsp;No.<?  echo $i ?>
    <?=$result["question"];?></td>
</tr>
<tr>
  <td width="4%" height="30">&nbsp;</td>
<td width="28%"> <input name="c<?=$i;?>" type="radio" value="1">a.
<?=$result["c1"];?>
</td>
<td width="27%"> <input type="radio" name="c<?=$i;?>" value="2">b.
<?=$result["c2"];?>
</td>
<td width="19%"> <input type="radio" name="c<?=$i;?>" value="3">c.
<?=$result["c3"];?>
</td>
<td width="22%"> <input type="radio" name="c<?=$i;?>" value="4">d.
<?=$result["c4"];?>
<input name="answer<?=$i;?>" type="hidden" value="<?=$result["answer"];?>">

</td>
</tr>

<tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
</tr>

</table>

<?
if($Prev_Page)
{
	echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}
?>

<?
if($Page!=$Num_Pages)
{
	echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
mysql_close($objConnect);
?>

</form>
     	 
    	</div>
</div>

<div id="container-right">
 		<? include ("menutime.php"); ?>
        </div>
    <div id="clear"></div>
<div id="footer"></div>
</body>
</html>


โคดหน้าตรวจคะแนนที่สร้างไว้ แต่ยังคำนวณไม่ได้ครับ
checkscore (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?
$score=0;
for($i=1;$i<=$_POST["line"];$i++)
{
	If($_POST["c$i"] == $_POST["answer$i"])
	{
			$score=$score+1;
	}
}
echo "True $score<br>";
?>
</body>
</html>


ส่วนฐานข้อมูลตามนี้ครับ
db (PHP)
CREATE TABLE `quiz` (
  `id` int(5) NOT NULL auto_increment,
  `question` varchar(50) NOT NULL,
  `c1` varchar(50) NOT NULL,
  `c2` varchar(50) NOT NULL,
  `c3` varchar(50) NOT NULL,
  `c4` varchar(50) NOT NULL,
  `answer` int(3) NOT NULL,
  `userid` int(5) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=98 ;

-- dump ตาราง `quiz`

INSERT INTO `quiz` VALUES (1, 'fffff', '1', '2', '3', '4', 1, 0);
INSERT INTO `quiz` VALUES (2, 'rrrrr', '1', '2', '3', '4', 2, 0);
INSERT INTO `quiz` VALUES (3, 'กดเ้ดเ', 'นยบ', 'ยนบ', 'ยบ', 'นยบ', 1, 0);
INSERT INTO `quiz` VALUES (4, 'รนยรนยบ', 'นยบน', 'นยบรน', 'ยบนยบ', 'นย', 2, 0);
INSERT INTO `quiz` VALUES (5, 'นนนนน', 'รรร', 'นนน', 'รน', 'รนรน', 1, 0);
INSERT INTO `quiz` VALUES (6, 'นนนนน', 'รรร', 'นนน', 'รน', 'รนรน', 1, 0);
INSERT INTO `quiz` VALUES (7, 'นนนนน', 'รรร', 'นนน', 'รน', 'รนรน', 2, 0);
INSERT INTO `quiz` VALUES (8, 'นนนนน', 'รรร', 'นนน', 'รน', 'รนรน', 1, 0);
INSERT INTO `quiz` VALUES (9, 'นนนนน', 'รรร', 'นนน', 'รน', 'รนรน', 1, 0);





Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-01-28 15:26:39 By : wita View : 1225 Reply : 9
 

 

No. 1



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

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

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

สุ่มคำถามเหรอคับ
เวลาโพสแล้วก็เก็บข้อมูลเลขคำถามเลขคำตอบ ไว้ที่ session หรือ cookie ก็ได้ครับเพิ่มเข้าไปทุกหน้า
พอเก็บข้อมูลหน้าสุดท้ายหมด ก็ดึงข้อมุลใน session มาคำนวณคับ



http://www.youtube.com/watch?v=pK72KLh1ng4






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-28 15:44:56 By : pjgunner.com
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : pjgunner.com เมื่อวันที่ 2014-01-28 15:44:56
รายละเอียดของการตอบ ::
ไม่ใช่สุ่มคำถามครับ เรียกข้อมูลจากฐานข้อมูลมาแสดงแบบธรรมดาทีละข้อ แต่ผมติดปัญหาที่การส่งคำตอบที่ถูกต้องไปหน้าสุดท้ายเพื่อคำนวณคะแนน

เดียวผมจะลองทำดูที่พี่แนะนำครับ การทำ session หรือ cookie ครับ ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-28 15:49:35 By : wita
 

 

No. 3



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



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


ยังสงสัยครับ ในหน้าฟอร์มนี้ผมใช้ตัวแบ่งหน้าในการเรียกคำถามมาแสดง แล้วกด next ไปข้อต่อไป แล้วผมจะส่งค่าหรือเก็บค่าของแต่ละหน้ายังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-28 16:00:30 By : wita
 


 

No. 4



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

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

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

ทำให้เป็นฟอร์มครับ ตรงปุ่มsubmit บอกว่า next แทนก็ได้นี่ครับ มีหลายวิธีเช่น ใส่ hidden field ไปด้วยก็ได้
<input type="hidden" name="page" value="<?php echo ($current_page + 1)"?>" />

เท่านี้อีกหน้าก็รู้ว่า เป็นหน้าสอง


ประวัติการแก้ไข
2014-01-28 16:09:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-28 16:09:52 By : pjgunner.com
 


 

No. 5



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

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

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

URL มันไม่แสดงหรอกหรอครับ?

Code (PHP)
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";


มันน่าจะแสดงตัวแล GET Page นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-28 16:11:46 By : Manussawin
 


 

No. 6



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



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


URL ส่งค่าครับ แล้วคำตอบที่ถูกต้องของแต่ละหน้าอะครับ ผมต้องเก็บและส่งต่อๆไปยังไงถึงจะสามารถนำไปตรวจนับคะแนนได้ในหน้าสุดท้ายครับพี่


ประวัติการแก้ไข
2014-01-28 16:48:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-28 16:47:40 By : wita
 


 

No. 7



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

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

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ถ้าแบบนี้ผมว่าเก็บใส่ตัวแปล session ไว้ในแต่ละหน้าครับ

Code (PHP)
//หน้า 1
$_SESSION['quiz1']; = $_POST['c1']; //เก็บคำตอบ
$_SESSION['page1'] = "ข้อ ก"; //คำตอบที่ถูกต้อง

//หน้า 2
$_SESSION['quiz2']; = $_POST['c2']; //เก็บคำตอบ
$_SESSION['page2'] = "ข้อ ง"; //คำตอบที่ถูกต้อง


พอถึงหน้าสุดท้ายก็จะได้ ตัวแปรทั้งหมดเอามาคำนวณเอาละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-29 08:16:37 By : Manussawin
 


 

No. 8

Guest


ลองดูจากตัวอย่างของไทยและของนอก นี้จะเห้นได้ชัดเจนตรงประเด็นที่อยากได้และนำไปปรับใช้ดู
http://www.indiabix.com/online-test/general-knowledge-test/random
http://www.ctrlschool.com/cloud
http://general-knowledge-quiz.co.uk/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-29 09:47:22 By : 789
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : Manussawin เมื่อวันที่ 2014-01-29 08:16:37
รายละเอียดของการตอบ ::
แต่ในฟอร์มของผม ไม่มีการเปลี่ยนหน้าอะครับ แค่แสดงในฟอร์มเดิม แต่แสดงแค่ครั้งละ 1 ข้อ

ตัวอย่างฟอร์มผมครับ
Code (PHP)
<form name="from" method="post"  onSubmit="return chknull();"  action=""> 
         
 <?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("quiz_mfes");
$strSQL = "SELECT * FROM quiz ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");

$Num_Rows = mysql_num_rows($objQuery);

$Per_Page = 1;   // Per Page

$Page = $_GET["Page"];
if(!$_GET["Page"])
{
	$Page=1;
}

$Prev_Page = $Page-1;
$Next_Page = $Page+1;

$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
	$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
	$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
	$Num_Pages =($Num_Rows/$Per_Page)+1;
	$Num_Pages = (int)$Num_Pages;
}

$strSQL .=" order  by id ASC LIMIT $Page_Start , $Per_Page";
$objQuery  = mysql_query($strSQL);
$result=mysql_fetch_array($objQuery);
?>

<table width="100%" border="0" align="center">
<tr>
  <td height="18" colspan="5">&nbsp;</td>
</tr>
<tr>
  <td height="25" colspan="5"><input name="id<?=$i;?>" type="hidden" value="<?=$result["id"];?>">&nbsp;No.<?  echo $i ?>
    <?=$result["question"];?></td>
</tr>
<tr>
  <td width="4%" height="30">&nbsp;</td>
<td width="28%"> <input name="c<?=$i;?>" type="radio" value="1">a.
<?=$result["c1"];?>
</td>
<td width="27%"> <input type="radio" name="c<?=$i;?>" value="2">b.
<?=$result["c2"];?>
</td>
<td width="19%"> <input type="radio" name="c<?=$i;?>" value="3">c.
<?=$result["c3"];?>
</td>
<td width="22%"> <input type="radio" name="c<?=$i;?>" value="4">d.
<?=$result["c4"];?>
<input name="answer<?=$i;?>" type="hidden" value="<?=$result["answer"];?>">

</td>
</tr>

<tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
</tr>
</table>

<?
if($Prev_Page)
{
	echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'>  << Back  </a> ";
}
?>

<?
if($Page!=$Num_Pages)
{
	echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>  Next>></a> ";
}
mysql_close($objConnect);
?>

</form>



รบกวนพี่อีกนิดนะครับ ไม่รู้ว่าจะใส่ SESSION ไว้ตรงไหนอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-29 11:26:06 By : wita
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 01
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 อัตราราคา คลิกที่นี่