A-AA+then

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

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

ตัวอย่าง จะเป็นการแสดงข้อมูลโดยดึงจากฐานข้อมูลนะค่ะ
 
รหัสนักศึกษา  ชื่อ - นามสกุล   checkbox

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


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

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


10 ความคิดเห็น

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