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

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



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

 

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



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

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





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

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



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

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





02 พ.ย. 2553 เวลา 15:29 น. 10 2,120

: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
^