10/10/2018, 11:13

Xin được giúp đở về thẻ select trong HTML

Mình có 2 cái select là Lớp và Sinh Viên:



Mình muốn sau khi Onchange cái Lớp thì ở Sinh VIên sẽ đưa ra những sinh viên nằm trong lớp đó.
Nghe nói cái này phải dùng Ajax nhưng mình chưa biết dùng Ajax.
Mình đang nghĩ là sau mỗi lần onchange cái Tag Select đó thì lấy ra được cái value tương ứng đang được selected rồi select cái bảng sinh viên để lấy ra sinh viên tương ứng với lớp đó, mà chưa biết làm thế nào.

Mong mọi người giúp đỡ.

[=========> Bổ sung bài viết <=========]

Bổ sung thêm, em dùng PHP ạ.
ninhcuongld viết 13:24 ngày 10/10/2018
Cách giải quyết
function changeDynaList( listname, source, key, orig_key, orig_val ) {
var list = eval( 'document.adminForm.' + listname );

// empty the list
for (i in list.options.length) {
list.options[i] = null;
}
i = 0;
for (x in source) {
if (source[x][0] == key) {
opt = new Option();
opt.value = source[x][1];
opt.text = source[x][2];

if ((orig_key == key && orig_val == opt.value) || i == 0) {
opt.selected = true;
}
list.options[i++] = opt;
}
}
list.length = i;
}
var sinhvienlop = new Array;
sinhvienlop[0] = new Array( '0','0','Chon SV' );
sinhvienlop[1] = new Array( '1','1','SV1' );

Trên là javascript
Con cái này là HTML
<select name="lop" id="lop" size="1" onchange="changeDynaList( 'sinhvien', sinhvienlop, document.adminForm.lop.options[document.adminForm.lop.selectedIndex].value, 0, 0);"><option value="0" selected="selected">- Chon lop-</option><option value="1" >Lop 1</option></select>

<select name="sinvien" id="sinvien" size="1"><option value="0" >Chon SV</option></select>


Cái này bê từ joomla ra
buicongdang viết 13:14 ngày 10/10/2018
Tẩu hỏa nhập ma mất
Bác có thể giải thích cho dể hiểu hơn được không ạ.
Nếu bác lấy từ Joomla thì bác cho em dòng mấy ở file nào trong thư mục nào. Joomla phiên bản nào được không ạ
ninhcuongld viết 13:18 ngày 10/10/2018
Joomla 1.5, bạn vào admin, khi đăng bài viết nó cho chọn section và category. Khi chọn 1 section chỉ show ra những categories tương ứng

View source nó lên xem.

Còn hàm js function changeDynaList( listname, source, key, orig_key, orig_val ) {...} trong file: /includes/js/joomla.javascript.js
vanlien129 viết 13:26 ngày 10/10/2018
code ajax đây:
Code:
// lay thong tin hoc sinh
$(document).ready(function()
{
$(".lopID").change(function()
{
var lopID=$(this).val();
var dataString = 'lopID='+ lopID;

$.ajax
({
type: "POST",
url: "hs.php",
data: dataString,
cache: false,
success: function(html)
{
$(".hsID").html(html);
} 
});

});
});
Còn dưới này là code trang hs.php:
Code:
if($_POST['lopID']){
    $lopID = $_POST['lopID'];
    $q = $mysql->query("select * from hocsinh where lopID=".$lopID);
	if($mysql->num_rows($q)){
    while($r = $mysql->fetch_array($q)){
        $hsID = $r['hsID'];
        $hoten = $r['hoten'];
        echo '<option value="'.$hsID.'">'.$hoten.'</option>';
    }
	}
	else {
	echo '<option>Chưa có thông tin</option> ';
	}
}
cuối cùng là code trang html:
Code:
<table>
<tr>
		<td>
			Lớp:
			<select name="lopID" class="lopID" id='lopID'>
				<option value=''>---Chọn lớp---</option>
				<!-- BEGIN:lop -->
				<option value='{lopID}'>{tenlop}</option>
				<!-- END:lop -->	
			</select>	
		</td>
		<td>Tên học sinh:
			<select name="hsID" class="hsID">
			<option>---Chọn học sinh--</option>
			</select>			
		</td>
</tr>
</table>
hsID là mã của học sinh, lopID là mã lớp....
ban nhớ chèn them cái jquery.min.js thư viện của jquery vào nhé
Bài liên quan
0