Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Abfrage ausführen, wenn der Benutzer eine neue Option in einem Auswahlfeld auswählt?

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ält
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);
}

}

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 zurückgeben . Weitere Informationen finden Sie im Tag-Wiki. Sie können auch verwenden um einen Ajax-Anruf zu tätigen.