ผมพึ่งหัดเขียนโปรแกรมครับ ตอนนี้จะลองทำระบบเกรดของนักเรียน
ผมติดเรื่องของ AJAX Select onchange
อันนี้เป็นไฟล์ ที่คุณครูล๊อคอินมา แล้วชื่อวิชาจะถูกดึงจาก database มาใส่ไว้ใน select
แล้วให้ ไฟล์
file getuser.php ทำการ ดึงข้อมูลมาโชว์ที่ select ของไฟล์แรก
ปัญหาคือ ในส่วนของ code ตรงนี้ครับ
-------------------------------------------------------------------------------------------------------------------
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<? while($objResult = mysql_fetch_array($objQuery)){ ?>
<option value=" <? $objResult["sub_ID"]; ?> "><?=$objResult["sub_name"];?></option> // ตรง value ที่ผม fetch มามันไม่ส่งไปที่ไฟล์ getuser.php ครับ ถ้าผมใส่ ตัวเลข ล่ะส่งได่ เช่น "30" แบบนี้ได้ ครับ
<? } ?>
</select>
</form>
-------------------------------------------------------------------------------------------------------------------
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้<?
session_start();
$ses_userid = $_SESSION[ses_userid];
$ses_username = $_SESSION[ses_username];
$ses_name = $_SESSION[ses_name];
?>
<?
//ตรวจสอบการเป็นครู
if($_SESSION[ses_status]!="teacher"){
echo "คุณไม่ใช่ครู";
echo "<meta http-equiv='refresh' content='1;URL=index_grade.php'>";
exit();
}else{
echo "ชื่อคุณครู $ses_name ";
}
?>
<html>
<head>
<script>
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?
//คิวลี่ข้อมูลเพื่อaddชื่อใน select
mysql_connect("localhost","root","1234");
mysql_select_db("database");
$strSQL = "SELECT * FROM subject where tea_name='$ses_username'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<? while($objResult = mysql_fetch_array($objQuery)){ ?>
<option value=" <? $objResult["sub_ID"]; ?> "><?=$objResult["sub_ID"];?></option>
<? }?>
</select>
</form>
<br>
<div id="txtHint"><b>Person info will be listed here.</b></div>
</body>
</html>
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้<?php
$q = $_GET['q'];
$con = mysqli_connect('localhost','root','1234','database');
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM schedule WHERE sub_id ='".$q."'";
$result = mysqli_query($con,$sql);
echo $q;
echo "<table border='1'>
<tr>
<th>รหัสนักเรียน</th>
<th>ชื่อ-สกุล</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['stu_id'] . "</td>";
echo "<td>" . $row['grade'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
ถามเรื่อง AJAX Select onchange หน่อยครับ
ผมติดเรื่องของ AJAX Select onchange
อันนี้เป็นไฟล์ ที่คุณครูล๊อคอินมา แล้วชื่อวิชาจะถูกดึงจาก database มาใส่ไว้ใน select
แล้วให้ ไฟล์
file getuser.php ทำการ ดึงข้อมูลมาโชว์ที่ select ของไฟล์แรก
ปัญหาคือ ในส่วนของ code ตรงนี้ครับ
-------------------------------------------------------------------------------------------------------------------
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<? while($objResult = mysql_fetch_array($objQuery)){ ?>
<option value=" <? $objResult["sub_ID"]; ?> "><?=$objResult["sub_name"];?></option> // ตรง value ที่ผม fetch มามันไม่ส่งไปที่ไฟล์ getuser.php ครับ ถ้าผมใส่ ตัวเลข ล่ะส่งได่ เช่น "30" แบบนี้ได้ ครับ
<? } ?>
</select>
</form>
-------------------------------------------------------------------------------------------------------------------
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้