Ja, Sie müssen hier Ajax verwenden. Überprüfen Sie den folgenden Code und die Hinweise.
Schreiben Sie die Funktion, die ein ActiveXObject()
zurückgibt was einen Ajax-Aufruf machen würde als
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;
}
Schreiben Sie dann eine für Ihre Website spezifische Funktion, die die gewünschten Daten als
erhältfunction 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);
}
}
Diese Funktion würde bei einem Änderungsereignis der cboCategory
aufgerufen select options, also wäre das entsprechende html
<select onchange="getProducts()" id="cboCategory" class="box">
...
</select>
<!-- Can be anywhere on same page -->
<div id="productdiv"> </div>
Ihre getproduct.php-Seite würde einen HTML-Code als String zurückgeben, der den Inhalt von producstdiv
überschreiben würde -Tag in Ihrer HTML-Seite.
Sie können Daten aus PHP auch als json zurückgeben . Weitere Informationen finden Sie im Tag-Wiki. Sie können auch jquery verwenden um einen Ajax-Anruf zu tätigen.