Có, bạn cần sử dụng ajax ở đây. Kiểm tra mã và ghi chú sau.
Viết hàm trả về ActiveXObject()
mà sẽ thực hiện một cuộc gọi ajax là
function getXMLHTTP() {
var xmlhttp = false;
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
xmlhttp = false;
}
}
}
}
return xmlhttp;
}
Sau đó, viết một hàm cụ thể cho trang web của bạn để nhận dữ liệu mong muốn như
function getProducts(){
var select1 = document.getElementById("cboCategory");
var strURL = "getproducts.php?city="+select1.options[select1.selectedIndex].value;
var req = getXMLHTTP(); // function to get xmlhttp object
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) { // data is retrieved from server
if (req.status == 200) { // which reprents ok status
document.getElementById('productsdiv').innerHTML = req.responseText; // div to be updated
} else {
alert("[GET Products]There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
};
req.open("GET", strURL, true); // open url using get method
req.send(null);
}
}
Hàm này sẽ được gọi trong sự kiện thay đổi của cboCategory
chọn các tùy chọn, vì vậy html tương ứng sẽ là
<select onchange="getProducts()" id="cboCategory" class="box">
...
</select>
<!-- Can be anywhere on same page -->
<div id="productdiv"> </div>
Trang getproduct.php của bạn sẽ trả về một html dưới dạng chuỗi ghi đè nội dung của producstdiv
trong trang html của bạn.
Bạn cũng có thể trả lại dữ liệu từ php dưới dạng json . Kiểm tra wiki gắn thẻ của nó để biết thêm thông tin. Ngoài ra, bạn có thể sử dụng jquery để thực hiện cuộc gọi ajax.