ตอนนี้กำลังเขียนโปรแกรมในการขอสำเร็จการศึกษาค่ะ ณ ตอนนี้ใช้ checkbox ค่ะ (เพราะว่าไม่รู้จะใช้อะไรค่ะ)
ตัวอย่าง จะเป็นการแสดงข้อมูลโดยดึงจากฐานข้อมูลนะค่ะ
รหัสนักศึกษา ชื่อ - นามสกุล checkbox
ตัวอย่าง นาย ก. นามสกุล ข. checkbox
นาย ค. นามสกุล ค. checkbox
โดยกำหนดให้ข้อมูลถ้าติ๊กถูกที่ checkbox จะกำหนดให้ update status จากตาราง student เป็น 2 แต่ถ้าไม่ติ๊กถูกที่ checkbox
จะกำหนดให้ update status จากตาราง student เป็น 3 (จากเดิมข้อมูล status ในตารางจะเป็น 1 )
ขอบคุณล่วงหน้าค่ะ
ปล. ได้ดูบทความในเว็บนี้แล้วค่ะเรื่อง checkbox แต่ยังงงอยู่เลยค่ะ (เคยเขียนเฉพาะ php ไม่เคยใช้ ajax)

ตัวอย่าง จะเป็นการแสดงข้อมูลโดยดึงจากฐานข้อมูลนะค่ะ
รหัสนักศึกษา ชื่อ - นามสกุล checkbox
ตัวอย่าง นาย ก. นามสกุล ข. checkbox
นาย ค. นามสกุล ค. checkbox
โดยกำหนดให้ข้อมูลถ้าติ๊กถูกที่ checkbox จะกำหนดให้ update status จากตาราง student เป็น 2 แต่ถ้าไม่ติ๊กถูกที่ checkbox
จะกำหนดให้ update status จากตาราง student เป็น 3 (จากเดิมข้อมูล status ในตารางจะเป็น 1 )
ขอบคุณล่วงหน้าค่ะ
ปล. ได้ดูบทความในเว็บนี้แล้วค่ะเรื่อง checkbox แต่ยังงงอยู่เลยค่ะ (เคยเขียนเฉพาะ php ไม่เคยใช้ ajax)

ถามว่าอะไร ครับ....ใครรู้ตอบที
ก็ประมาณว่าคลิกเลือกคนไหน แล้วไป Update Status ใน Table ให้ค่าเปลี่ยนไปครับ
ตอนนี้คุณ Tiyanun อยากได้ Code แบบ Ajax ครับ
ตอนนี้คุณ Tiyanun อยากได้ Code แบบ Ajax ครับ
ถูกต้องแล้วค่ะ คุณ yoojuy คืออยากได้ code ในการกำหนดให้ข้อมูลถ้าติ๊กถูกที่ checkbox จะกำหนดให้ update status จากตาราง student เป็น 2 แต่ถ้าไม่ติ๊กถูกที่ checkbox
จะกำหนดให้ update status จากตาราง student เป็น 3
จะกำหนดให้ update status จากตาราง student เป็น 3
ลองดูบทความครับ..
ถ้ายังมีคำถามอยู่ กรุณาถามเป็นข้อๆ นะครับ
ถ้ายังมีคำถามอยู่ กรุณาถามเป็นข้อๆ นะครับ
ไฟล์ส่งค่า ไฟล์ที่ 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> </td>
<td> </td>
<td> </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');
?>
ลองทำดูนะครับ
ขอบคุณมากนะค่ะ คุณ yoojuy
คุน yoojuy code ที่ให้มา ไฟล์ list_member.php มันไม่แสดงข้อมูลอะไรเลยค่ะ
ลองดูนะครับ ว่าแสดง Error หรือว่าอะไรบ้าง
1. ลองดูว่า Connect Database หรือยัง
2. ลองดูว่ามี Table หรือ Field หรือยัง
3. ข้อมูลในตารางมีหรือไม่
4. ลอง echo ค่า $sql ออกมาดู แล้วลอง ไปรันใน Mysql ว่ามีค่าออกมาหรือไม่
ลองทำตามขั้นตอนนี้ก่อนนะครับ
1. ลองดูว่า Connect Database หรือยัง
2. ลองดูว่ามี Table หรือ Field หรือยัง
3. ข้อมูลในตารางมีหรือไม่
4. ลอง echo ค่า $sql ออกมาดู แล้วลอง ไปรันใน Mysql ว่ามีค่าออกมาหรือไม่
ลองทำตามขั้นตอนนี้ก่อนนะครับ
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 คือ รหัสนักศึกษามันก็ไม่แสดงข้อมูลค่ะ
<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 คือ รหัสนักศึกษามันก็ไม่แสดงข้อมูลค่ะ
echo $sql = "SELECT * FROM student"; // เลือกข้อมูลจากตาราง student
ลองเอาค่าที่ได้จา่กการ echo ไป Query ใน MySql นะครับ ว่ามีค่าออกหรือปล่าว
แต่อย่าลืมนะครับ Code ที่ส่งให้ดูเป็่นแค่เบื้องต้น ต้องลองปรับแต่งดูนะครับในส่วนของ Javascript
ลองเอาค่าที่ได้จา่กการ echo ไป Query ใน MySql นะครับ ว่ามีค่าออกหรือปล่าว
แต่อย่าลืมนะครับ Code ที่ส่งให้ดูเป็่นแค่เบื้องต้น ต้องลองปรับแต่งดูนะครับในส่วนของ Javascript