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 > query ค่าจาก database แสดงเป็น checkbox แล้ว update ไม่ได้ครับ



 

query ค่าจาก database แสดงเป็น checkbox แล้ว update ไม่ได้ครับ

 



Topic : 055658



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



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




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

ตารางคำถาม

ผมจะมี checkbox ไว้ด้านท้ายครับ ไว้คลิกว่า ข้อดังกล่าวต้องการให้ random หรือไม่
โดย code จะเป็นดังนี้

Code (PHP)
<?
$id=$_GET[id_edit];
$lesson=$_GET[lesson];
?>
<!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=TIS-620" />
<title>Untitled Document</title>
<body>



<script language="JavaScript">
	function ClickCheckAll(vol)
	{
	
		var i=1;
		for(i=1;i<=document.frmMain.hdnCount.value;i++)
		{
			if(vol.checked == true)
			{
				eval("document.frmMain.chkDel"+i+".checked=true");
			}
			else
			{
				eval("document.frmMain.chkDel"+i+".checked=false");
			}
		}
	}

</script>
<form name="frmMain" action="proposition_rd.php" method="post" OnSubmit="return onDelete();">
  <h1>:: Proposition ::</h1>
  [ <a href="adquestion.php?id_edit=<?=$id?>&lesson=<?=$lesson?>">Add Proposition</a> ][ <a href="showlesson.php">Back Lesson</a> ] <br /><br />
<?
include"../connect.php";
$sql = "SELECT * FROM Proposition where ref_lesson='$lesson'";
$result=mysql_db_query($dbname,$sql);
?>

<table width="791" border="1">
  <tr bgcolor="#D3D3D3">
    <th width="56"> <div align="center">No</div></th>
    <th width="417"> <div align="center">Question</div></th>
    <th width="181"> <div align="center">ผู้ออกโจทย์</div></th>
    <th width="65"> <div align="center">ระดับ</div></th>
    <th width="38"> <div align="center">
      <input name="CheckAll" type="checkbox" id="CheckAll" value="Y" onClick="ClickCheckAll(this);">
    </div></th>
  </tr>
<?
$i = 0;
$sql2="select * from Proposition where ref_lesson='$lesson'";
$result2=mysql_db_query($sql2);
while($objResult = mysql_fetch_array($result))
{

		if($objResult[level]==1){
		$level='ข้อยาก';
		}else{
		$level='ข้อง่าย';
		}
$i++;
?>
  <tr>
    <td><div align="center"><?=$i;?></div></td>
    <td><?=$objResult["proposition"];?></td>
    <td><?=$objResult["create_by"];?></td>
    <td><div align="center"><?=$level;?></div></td>
    <td align="center"><input type="checkbox" name="chkDel[]" id="chkDel<?=$i;?>" value="<?=$objResult["question_id"];?>" <? if($objResult[random]==1){
echo"checked";}	?>"></td>
  </tr>
<?
}
?>
</table>
<br />
<?

	$sql2="select * from Proposition where ref_lesson='$lesson'";
	$result2=mysql_db_query($dbname,$sql2);
	$num=mysql_num_rows($result2);
	if($num==0){
	echo "<h3>ยังไม่มีโจทย์</h3>";
	}
mysql_close( );
?>
<input type="submit" name="btnDelete" value="Delete">
<input type="hidden" name="hdnCount" value="<?=$i;?>">
</form>


</body>
</html>


ด้านล่างจะมีปุ่มด้วยนะครับ รูปไม่ครบครับ

โดยเมื่อคลิกปุ่มด้านล่างต้องการให้ส่งค่าไปยัง ตาราง Proposition ฟิวส์ random ครับ

random


หน้าที่ทำการส่งข้อมูลคือหน้านี้ครับ
Code (PHP)
<?
include"../connect.php";

	for($i=0;$i<count($_POST["chkDel"]);$i++)
	{
		if($_POST["chkDel"][$i] != "")
		{
	
		$sql = "update Proposition ";
			$sql .=" set random='1' WHERE question_id = '".$_POST["chkDel"][$i]."' ";
		$result=mysql_db_query($dbname,$sql);

		}else{
		$sql = "update Proposition ";
			$sql .=" set random='0' WHERE question_id = '".$_POST["chkDel"][$i]."' ";
		$result=mysql_db_query($dbname,$sql);
		}
	}

	echo "up date complete " ;

mysql_close( );
?>


ผมติดปัญหาตรงที่ว่าหาก ครั้งแรก ต้องการให้ random สองโจทย์ ค่าของ random ใน ตาราง proposition ก็จะมีค่าเป็น 1
แต่เมื่อผมเข้ามาอีกทีแล้วเอา checkbox ออก และกดที่ปุ่มอีกที ผมทำให้ค่าใน ตาราง proposition ฟิว random เป็น 0 ผมยังทำไม่ได้ครับ
ผมอธิบายไม่ค่อยเก่งครับ ช่วยหน่อยนะครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-02-07 13:36:19 By : pichit8 View : 2864 Reply : 4
 

 

No. 1



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



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


หน้าแรก ยังไม่ได้ส่งค่า question_id ไปยังหน้าถัดไป
เพิ่ม <input type="hidden" name="question_id" value="<?=$objResult["question_id"];?>">


ส่วนอีกหน้า
ตรง WHERE question_id = '".$_POST["chkDel"][$i]

แก้เป็น
WHERE question_id = '".$_POST["question_id"]"








ประวัติการแก้ไข
2011-02-07 13:53:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-07 13:52:09 By : avsqlz
 


 

No. 2



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



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


ผมแก้หน้าแรกแล้วเป็นแบบนี้ครับ

Code (PHP)
while($objResult = mysql_fetch_array($result))
{

		if($objResult[level]==1){
		$level='ข้อยาก';
		}else{
		$level='ข้อง่าย';
		}
$i++;
?>
  <tr>
    <td><div align="center"><?=$i;?></div></td>
    <td><?=$objResult["proposition"];?></td>
    <td><?=$objResult["create_by"];?></td>
    <td><div align="center"><?=$level;?></div></td>
    <td align="center"><input type="checkbox" name="chkDel[]" id="chkDel<?=$i;?>" value="<?=$objResult["question_id"];?>" <? if($objResult[random]==1){echo"checked";}	?>><input type="hidden" name="question_id[]" value="<?=$objResult["question_id"];?>"></td>
  </tr>




ผมแก้หน้าที่สอง
Code (PHP)
for($i=0;$i<count($_POST["question_id"]);$i++)
	{
		if($_POST["chkDel"][$i] == "")
		{
	
		$sql = "update Proposition ";
			$sql .=" set random='0' WHERE question_id = '".$_POST["question_id"][$i]."' ";
		$result=mysql_db_query($dbname,$sql);
		

		}else if($_POST["chkDel"][$i] != ""){
		$sql = "update Proposition ";
			$sql .=" set random='1' WHERE question_id = '".$_POST["question_id"][$i]."' ";
		$result=mysql_db_query($dbname,$sql);
		
		
		
		} 



แต่เวลาที่ checkbox ที่ record ที่ ล่าง ๆ เมื่อกลับมาหน้าเดิมมันจะติกเรียงจากด้านบนลงมาครับ ผมหาไม่เจอว่าเป็นที่อะไร รบกวนอีกทีครับ


ประวัติการแก้ไข
2011-02-08 15:05:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-08 15:05:00 By : pichit8
 

 

No. 3



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



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


แก้ตรง checkbox แบบนี้ครับ
Code (PHP)
<input type="checkbox" name="chkDel[]" id="chkDel<?=$i;?>" value="<?=$objResult["random"];?>" <? if($objResult["random"]==1){
echo"checked";}?>>


อธิบาย

ตะกี๊ value ใน checkbox ของคุณมันมีค่าเท่ากับ question_id ค่ามันก็เลยเป็น 1,2,3,4,5,6,...

ซึ่งจริงๆแล้วค่าของมันต้องเป็น random คือ 0หรือ1 เท่านั้น


ประวัติการแก้ไข
2011-02-09 15:23:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-09 15:19:52 By : avsqlz
 


 

No. 4



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



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


ขอบคุณ ครับ ได้แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 13:31:20 By : pichit8
 

   

ค้นหาข้อมูล


   
 

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