กำหนดให้เลือกข้อมูล โดยใช้ checkbox

ตอนนี้กำลังเขียนโปรแกรมในการขอสำเร็จการศึกษาค่ะ ณ ตอนนี้ใช้ checkbox ค่ะ (เพราะว่าไม่รู้จะใช้อะไรค่ะ)



ตัวอย่าง จะเป็นการแสดงข้อมูลโดยดึงจากฐานข้อมูลนะค่ะ

 

รหัสนักศึกษา  ชื่อ - นามสกุล   checkbox



ตัวอย่าง    นาย ก.   นามสกุล ข.  checkbox

              นาย ค.   นามสกุล ค.  checkbox





โดยกำหนดให้ข้อมูลถ้าติ๊กถูกที่ checkbox จะกำหนดให้ update status จากตาราง student เป็น 2 แต่ถ้าไม่ติ๊กถูกที่ checkbox

จะกำหนดให้ update status จากตาราง student เป็น 3 (จากเดิมข้อมูล status ในตารางจะเป็น 1 )



ขอบคุณล่วงหน้าค่ะ

ปล. ได้ดูบทความในเว็บนี้แล้วค่ะเรื่อง checkbox แต่ยังงงอยู่เลยค่ะ (เคยเขียนเฉพาะ php ไม่เคยใช้ ajax)





02 พ.ย. 2553 10 2,280

:46: ถามว่าอะไร ครับ....ใครรู้ตอบที
#1

ก็ประมาณว่าคลิกเลือกคนไหน แล้วไป Update Status ใน Table ให้ค่าเปลี่ยนไปครับ



ตอนนี้คุณ Tiyanun อยากได้ Code แบบ Ajax ครับ



#2

ถูกต้องแล้วค่ะ คุณ yoojuy คืออยากได้ code ในการกำหนดให้ข้อมูลถ้าติ๊กถูกที่ checkbox จะกำหนดให้ update status จากตาราง student เป็น 2 แต่ถ้าไม่ติ๊กถูกที่ checkbox

จะกำหนดให้ update status จากตาราง student เป็น 3
#3

ลองดูบทความครับ..



ถ้ายังมีคำถามอยู่ กรุณาถามเป็นข้อๆ นะครับ
#4








ไฟล์ส่งค่า ไฟล์ที่ list_member.php



[head]Code (PHP)[/head]


[php]

 


<script type="text/javascript">


function uzXmlHttp(){


var xmlhttp = false;


try{


xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");


}catch(e){


try{


xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");


}catch(e){


xmlhttp = false;


}


}


 


if(!xmlhttp && document.createElement){


xmlhttp = new XMLHttpRequest();


}


return xmlhttp;


}


 


 


function chk_val()


{


 


var user_id1= document.getElementById("user_id1").value;


var user_id2= document.getElementById("user_id2").value;


var user_id3= document.getElementById("user_id3").value;


 


 


 


var url = 'update_status.php?user_id1='+user_id1+'&user_id2='+user_id2+'&user_id3='+user_id3;


 


xmlhttp=uzXmlHttp();


xmlhttp.onreadystatechange = function () { 


 


if (xmlhttp.readyState==4){


if (xmlhttp.status==200) {


 


            var ret=xmlhttp.responseText;


 


 


 


 


 


        }


}


}


xmlhttp.open("GET", url);


xmlhttp.setRequestHeader("If-Modified-Since", ""+ new Date().getTime()+"");


xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=windows-874');


xmlhttp.send(null);


  }


  </script>


<body>


<table width="500" border="1" cellspacing="0" cellpadding="0">


  <tr>


    <td>&nbsp;</td>


    <td>&nbsp;</td>


    <td>&nbsp;</td>


  </tr>


  <? 


  


  $sql =  "SELECT * FROM users";


  $query = mysql_query($sql);


  $i = 1;


  while(@extract($obj = mysql_fetch_array($query))){


  ?>


  <tr>


    <td><?=$i?></td>


    <td><?=$fullname?></td>


    <td>


<input type="hidden" name="user_id<?=$i?>" id="user_id<?=$i?>" value="<?=$i?>"/>


<? echo $user_id;?><input type="checkbox" name="chk_val" id="chk_val" onClick="chk_val('<? echo $user_id.$i?>')" /></td>


  </tr>


  <? $i++; } ?>


  <input type="hidden" name="total" id="total" value="<?=$i?>"/>


</table>


[/php]







ลองเอา Code นี้ไปดูก่อนนะครับ สร้างไฟล์ update_status.php มารับค่าจากการ Link มาจาก javascript 

ทำการ $_GET 

ค่าที่ส่งมาจะอยู่ใน



var url = 'update_status.php?user_id1='+user_id1+'&user_id2='+user_id2+'&user_id3='+user_id3;



จะส่งค่า user_id1,user_id2,user_id3 



แต่ต้องใส่ Code นี้ีไว้ส่วนหัวด้วยนะครับในไฟล์ update_status.php




<?


 


$now = gmdate('D,d M Y H:i:s') . ' GMT';


header('Expires: ' . $now);


header('Last-Modified: ' . $now);


header('Cache-Control: no-store, no-cache, must-revalidate');


header('Cache-Control: pre-check=0, post-check=0, max-age=0'); 


header('Pragma: no-cache'); 


header('Content-Type: text/html; charset=utf-8');



 


?>



ลองทำดูนะครับ 


#5

ขอบคุณมากนะค่ะ คุณ yoojuylaugh
#6

คุน yoojuy code ที่ให้มา ไฟล์ list_member.php มันไม่แสดงข้อมูลอะไรเลยค่ะ
#7

ลองดูนะครับ ว่าแสดง Error หรือว่าอะไรบ้าง



1. ลองดูว่า Connect Database หรือยัง

2. ลองดูว่ามี Table หรือ Field หรือยัง

3. ข้อมูลในตารางมีหรือไม่

4. ลอง echo ค่า $sql ออกมาดู แล้วลอง ไปรันใน Mysql ว่ามีค่าออกมาหรือไม่



ลองทำตามขั้นตอนนี้ก่อนนะครับ
#8

list_member.php

<script type="text/javascript">

function uzXmlHttp(){

var xmlhttp = false;

try{

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}catch(e){

xmlhttp = false;

}

}

 

if(!xmlhttp && document.createElement){

xmlhttp = new XMLHttpRequest();

}

return xmlhttp;

}

 

 

function chk_val()

{

 

var user_id1= document.getElementById("user_id1").value;

var user_id2= document.getElementById("user_id2").value;

var user_id3= document.getElementById("user_id3").value;

 

 

 

var url = 'adddata2.php?user_id1='+user_id1+'&user_id2='+user_id2+'&user_id3='+user_id3;

 

xmlhttp=uzXmlHttp();

xmlhttp.onreadystatechange = function () {

 

if (xmlhttp.readyState==4){

if (xmlhttp.status==200) {

 

            var ret=xmlhttp.responseText;

 

 

 

 

 

        }

}

}

xmlhttp.open("GET", url);

xmlhttp.setRequestHeader("If-Modified-Since", ""+ new Date().getTime()+"");

xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=windows-874');

xmlhttp.send(null);

  }

  </script>


<?

  include "connect.php";  // connect datatbase เรียบร้อยแล้ว

  $sql =  "SELECT * FROM student"; // เลือกข้อมูลจากตาราง student

  $query = mysql_query($sql);

  $i = 1;

  while(@extract($obj = mysql_fetch_array($query))){

  ?>


  <tr>

    <td><?=$i?></td>

    <td><?=$std_name?></td>//เลือกฟิล์ดในตาราง student คือ std_name

    <td>

<input type="hidden" name="user_id<?=$i?>" id="user_id<?=$i?>" value="<?=$i?>"/>

<? echo $user_id;?><input type="checkbox" name="chk_val" id="chk_val" onClick="chk_val('<? echo $user_id.$i?>')" /></td>

  </tr>

  <? $i++; } ?>

  <input type="hidden" name="total" id="total" value="<?=$i?>"/>

</table>





พอรันโปรแกรมแล้วมันไม่แสดงข้อมูลอะไรเลยค่ะ รบกวนช่วยดูให้หน่อยนะค่ะ ไม่รู้ว่ามันผิดตรงไหน

ปล. ตรง user_id คืออะไรค่ะ ในตารางของดิฉันไม่มีนะค่ะ แต่ลองเปลี่ยนเป็น std_id คือ รหัสนักศึกษามันก็ไม่แสดงข้อมูลค่ะ



#9

echo $sql =  "SELECT * FROM student"; // เลือกข้อมูลจากตาราง student



ลองเอาค่าที่ได้จา่กการ echo ไป Query ใน MySql นะครับ ว่ามีค่าออกหรือปล่าว 



แต่อย่าลืมนะครับ Code ที่ส่งให้ดูเป็่นแค่เบื้องต้น ต้องลองปรับแต่งดูนะครับในส่วนของ Javascript 
#10
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^