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 > ต้องการเก็บค่าตัวแปรที่ทำการ GET ในหน้าเดียวซ้ำตามจำนวนรอบของโจทย์ที่กำหนด



 

ต้องการเก็บค่าตัวแปรที่ทำการ GET ในหน้าเดียวซ้ำตามจำนวนรอบของโจทย์ที่กำหนด

 



Topic : 067224



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



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



ตอนนี้เขียนโปรแกรมทำข้อสอบอยู่ค่ะ เป็นแบบ choice ให้เลือก ข้อสอบทั้งหมดมี 12 ข้อ(คำถามเิริ่มจากข้อ 0 นับรวมทั้งหมดแล้วได้ 13 ข้อ) โดยให้แสดงครั้งละข้อต่อหนึ่งหน้า จึงทำการส่งค่า GET เลขข้อทุกครั้งที่กด Next เพื่อแสดงคำถามในข้อถัดไป

ในฐานข้อมูลใช้วิธี WHERE topic=$_GET['topic'] เมื่อรีเฟรชหน้าใหม่คำถามและคำตอบก็จะเปลี่ยนไปเรื่อย ๆ ตามเลขข้อที่ส่งมา
ใช้ javascript ในการเช็คว่าข้อนั้น ๆ ตอบคำถามไปแล้วหรือยัง แล้วค่อยอนุญาตให้ Next ไปทำข้อถัดไป

Code (JavaScript)
<script language="JavaScript">
		  function beforePost() {
		    if ( !document.frm1.ans[0].checked &&
			     !document.frm1.ans[1].checked &&
				 !document.frm1.ans[2].checked &&
				 !document.frm1.ans[3].checked &&
				 !document.frm1.ans[4].checked ) {
			   alert('ยังไม่ได้เลือก');
			} else { topic = document.frm1.topic.value;  
					if(document.frm1.ans[0].checked) {
					ans   = document.frm1.ans[0].value;
					}
					else if(document.frm1.ans[1].checked) {
					ans   = document.frm1.ans[1].value;
					}
					else if(document.frm1.ans[2].checked) {
					ans   = document.frm1.ans[2].value;
					}
					else if(document.frm1.ans[3].checked) {
					ans   = document.frm1.ans[3].value;
					}
					else if(document.frm1.ans[4].checked) {
					ans   = document.frm1.ans[4].value;
					}
					topic++;
					//check last topic
					if(topic<=12){
					location.replace('http://10.33.1.11:10088/tyyhr/question_all.php?topic='+topic+'&ans='+ans);
					}
					else{
						location.replace('http://10.33.1.11:10088/tyyhr/question_saveall.php?topic='+topic+'&ans='+ans);
					}
				}	
		  }


ตอนนี้มีปัญหาเรื่องการเก็บค่าคำถามกับคำตอบค่ะ ในเมื่อทำการ GET เก็บค่าไว้ตัวแปรจึงโดนทับไปเรื่อย ๆ คำตอบของคำถามก่อนหน้าก็เลยหายไปด้วย ทำให้ไม่สามารถบันทึกลงฐานข้อมูลได้

Code (PHP)
if(isset($_GET))
{
$topic=$_GET['topic'];
	for($v=0;$v<$topic;$v++)
	{
		$_SESSION[$topic-$v]=$_GET['ans'];
		echo "session".$v."=".$_SESSION[$v]."<br />";
	}
}
else
{
$topic='0';
}




Tag : PHP, MySQL, JavaScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-27 10:56:43 By : SuSaya View : 1471 Reply : 7
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

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






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-27 21:18:17 By : webmaster
 


 

No. 2



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



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

ทีแรกที่ทำเลยคือทำข้อละหน้าไปเลยค่ะ
แต่เจ้านายรีเควสมาใหม่ว่าให้เขียนหน้าเดียวพอแล้ววนอ่านคำถามเอา (โชว์ทีละข้อ)

พอจะมีวิธีแนะนำมั้ยคะ ว่าควรจะเขียนยังไงดี?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-28 10:09:28 By : SuSaya
 

 

No. 3



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



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

วนคำถามนี่หมายถึง code หน้าเดียวมี 13 คำถาม แต่ให้แสดงทีละคำถามถ้าตอบก็ให้แสดงคำถามข้อถัดไปใช่ไหม

ถ้าใช่

ลอง hidden คำถามที่ยังไม่ให้โชว์ไว้ไหม แล้วcheckเอาถ้าตอบคำถามก่อนหน้าแล้วให้โชว์คำถามถัดไปได้

วนเก็บค่าเป้น array เอา ถ้าให้ช่วยลองโพสโค๊ด มาให้ดูได้นะ ลองดูๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-28 10:34:22 By : LuckyStar
 


 

No. 4



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



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


ลองศึกษา ajex ดูเผื่อจะช่วยได้

เช่น
ข้อ1

1.1 a
1.2 b
1.3 c
1.4 d
1.5 e
*เลือกข้อ5 Next ไป ข้อ2 ซึ่งจะโชว์ตัวแปลของข้อ1ไว้เป็น
1 e

2.1 q
2.2 w
2.3 e
2.4 r
2.5 t
*เลือกข้อ5 Next ไป ข้อ2 ซึ่งจะโชว์ตัวแปลของข้อ1ไว้เป็น
1 e 2 t

1.1 q
2.2 w
3.3 e
4.4 r
5.5 t

พอครบแล้วกด send ก็สั่งให้ request ทั้งหมดทุกข้อ
echo $_SERVER["REQUEST_URI"]." ";
echo $_GET["e"]."";
echo $_GET["t"]."";

ลองจินตนาการดูนะ ว่าจะ ทำเป็นยังไง ผมก็ไม่ค่อยเก่ง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-28 10:45:35 By : romanztic
 


 

No. 5



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



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

Code (PHP)
<?php
session_start();
include("include/connect.php");
if(isset($_GET))
{
$topic=$_GET['topic'];
}
else
{
$topic='0';
}
$cmd  = "SELECT QUSTTOPIC,QUSTQUSTN,QUSTANSW1,QUSTDSCP1,QUSTSCOR1,
		QUSTANSW2,QUSTDSCP2,QUSTSCOR2,
		QUSTANSW3,QUSTDSCP3,QUSTSCOR3,
		QUSTANSW4,QUSTDSCP4,QUSTSCOR4,
		QUSTANSW5,QUSTDSCP5,QUSTSCOR5
		FROM  QUESTION WHERE QUSTTOPIC='$topic'";
?>
<html>
	<head>
		<title>
			คำถาม
		</title>
		<style type="text/css">
			p.font1{font-size:40 px; font-weight:bold;}
			p.font2{font-size:24 px; font-weight:bold;}
		</style>
		<script language="JavaScript">
		  function beforePost() {
		    if ( !document.frm1.ans[0].checked &&
			     !document.frm1.ans[1].checked &&
				 !document.frm1.ans[2].checked &&
				 !document.frm1.ans[3].checked &&
				 !document.frm1.ans[4].checked ) {
			   alert('ยังไม่ได้เลือก');
			} else { topic = document.frm1.topic.value;  
					if(document.frm1.ans[0].checked) {
					ans   = document.frm1.ans[0].value;
					}
					else if(document.frm1.ans[1].checked) {
					ans   = document.frm1.ans[1].value;
					}
					else if(document.frm1.ans[2].checked) {
					ans   = document.frm1.ans[2].value;
					}
					else if(document.frm1.ans[3].checked) {
					ans   = document.frm1.ans[3].value;
					}
					else if(document.frm1.ans[4].checked) {
					ans   = document.frm1.ans[4].value;
					}
					topic++;
					//check last topic
					if(topic<=12){
					location.replace('http://10.33.1.11:10088/tyyhr/question_all.php?topic='+topic+'&ans'+topic+'='+ans);
					}
					else{
					location.replace('http://10.33.1.11:10088/tyyhr/question_saveall.php?topic='+topic+'&ans='+ans);
					}
				}	
		  }
		  
		  function backPage() {
				topic = document.frm1.topic.value; 
				topic--;
				location.replace('http://10.33.1.11:10088/tyyhr/question_all.php?topic='+topic);
		  }
		</script>
	</head>
	<body>
	<h4 align='center'><!----></h4>
	<img src="img/head.jpg" border ="0" width ="1250" align ="center"><br /><br /><br />
	<form action ="question_saveall.php" method ="post" name="frm1">
		<table border="0" id="id" align="center" width="600">
		<?php
			if (!($sql = mysql_query($cmd)))
			{
			echo "<br /><center><b><font color ='red'>ไม่พบข้อมูล</font></b></center>";//การเช็ค error ของข้อมูลจากการ select ข้อมูล.			
			echo " <br />error2 = " . mysql_error() . ", " . mysql_errormsg() . " <br />";
			echo $cmd;
			exit();	
			}
			while($result=mysql_fetch_assoc($sql))
			{
			?>
			<tr>
			<?php if($result['QUSTTOPIC']<>0)
			{
			?>
				<td colspan='1'><p class="font1"><?php if($result['QUSTTOPIC']<>0){echo $result['QUSTTOPIC'];}?></p></td><td><p class="font2"> <?php echo $result['QUSTQUSTN'];?></p></td>
			<?php
			}
			else
			{
			?>
				<td colspan='2'><p class="font1"><?php if($result['QUSTTOPIC']<>0){echo $result['QUSTTOPIC'];}?></p><p class="font2"> <?php echo $result['QUSTQUSTN'];?></p></td>
			<?php
			}
			?>
			</tr>
			<tr> 
				<td width='15'><font size='5'><input type='radio' name='ans' value="<?php echo $result['QUSTSCOR1'];?>"/></font></td>
				<td><font size='5'><?php echo $result['QUSTDSCP1'];?></font></td>
			</tr>
			<tr>
				<td width='15'><font size='5'><input type='radio' name='ans' value="<?php echo $result['QUSTSCOR2'];?>"/></font></td>
				<td><font size='5'><?php echo $result['QUSTDSCP2'];?></font></td>
			</tr>
			<tr>
				<td width='15'><font size='5'><input type='radio' name='ans' value="<?php echo $result['QUSTSCOR3'];?>"/></font></td>
				<td><font size='5'><?php echo $result['QUSTDSCP3'];?></font></td>
			</tr>
			<tr>
				<td width='15'><font size='5'><input type='radio' name='ans' value="<?php echo $result['QUSTSCOR4'];?>"/></font></td>
				<td><font size='5'><?php echo $result['QUSTDSCP4'];?></font></td>
			</tr>
			<tr>
				<td width='15'><font size='5'><input type='radio' name='ans' value="<?php echo $result['QUSTSCOR5'];?>"/></font></td>
				<td><font size='5'><?php echo $result['QUSTDSCP5'];?></font></td>
			</tr>
			<input type="hidden" name="topic" value="<?php echo $topic;?>" />
			<tr>
				<td colspan='2' align ='center'>
				<?php
				if($topic>0)
				{
				?>
				<a href='javascript:backPage()'><img border ='0' src='img/back_button.jpg'></a>&nbsp;&nbsp;
				<?php
				}
				if($topic<12)
				{
				?>
				<a href='javascript:beforePost()'><img border ='0' src='img/next_button.jpg' /></a>
				<?php
				}
				else
				{
				?>
				<a href='javascript:beforePost()'><img border ='0' src='img/save2.png' alt='Save' width='50' /></a>
				<?php
				}
				?>
				</td>
			</tr>
		<?php	
			}
		?>
		</tr>
		</table>
	<?php
	include("include/close_connect.php");
?>		
	</form>
	<?php 
	include("question_bar.php");
	?>
	</body>
</html>


Code ประมาณนี้ค่ะ แต่ยังไม่ได้วนรับค่าคำตอบของแต่ละข้อ


ประวัติการแก้ไข
2011-09-28 11:12:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-28 10:56:55 By : SuSaya
 


 

No. 6



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



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


ต้องวางกระบวนการทำใหม่อ่าครับ
เน้นที่ซ่อน interface เหมือนเดิม เน้นที่ซ่อนเอา เช่น <input "hidden" type="<?php echo $_GET ค่าที่ส่งมา;?>"
แปลออกมาเป็นค่าPost แล้วGET อีกทีทำแบบนี้ (ปวดหัว)

วิธีคิด
ต้องเอากระดาษมาวาง ตามจำนวน ข้อสอบ แล้วทำ ตาราง การทำงาน ลองๆดูๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-28 11:04:50 By : romanztic
 


 

No. 7



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



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

ขอบคุณพี่ ๆ ทุกคนนะคะ
ขอไปรื้อโค้ดก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-28 11:52:08 By : SuSaya
 

   

ค้นหาข้อมูล


   
 

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