Próbuję dokonać wyboru listy opcji aktualizacji html zgodnie z wyborem dokonanym na wcześniejszym obiekcie zaznaczenia html. Mój jquery jest poniżej. To się nazywa poprawnie.Aktualizacja listy opcji <select> przy użyciu jquery i ajax
var brandName = $("#Brand").val();
$.get("updateTypes.php?q="+brandName, function(data) {
$("#Type").remove();
var typeData = JSON.parse(data);
for (loop=0; loop < typeData.length; ++loop) {
$("#Type").options.add(new Option(typeData[loop]));
}
});
Ponieważ używam pojedyncza do łączenia się z moim bazy danych MySQL, jQuery funkcja ta nazywa 'go-between' .php pliku o nazwie updateTypes.php który znajduje się poniżej:
include 'databaseInterface.php';
$brand = $_GET["q"];
$typesData = databaseInterface::getBrandTypes($brand);
return $typesData;
Wymaga funkcja getBrandTypes w moim Singleton poniżej:
$query = "SELECT psTypeName FROM types WHERE brands_psBrandName='$BrandName'";
$result = mysqli_query($con, $query) or die ("Couldn't execute query. ".mysqli_error($con));
$resultArray = array();
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
$resultArray[] = $psTypeName;
}
return json_encode($resultArray);
strona internetowa prawidłowo usuwa istniejące opcje z funkcji jquery, ale nie trafia do ich aktualizacji. Wydaje się, że dzieje się nie tak, kiedy dekoduję dane JSON w jquery. Dlaczego idzie źle? Czy pętla aktualizująca wybrany obiekt jest odpowiednia?
Ta odpowiedź jest super, ale jak stwierdzono przez inny odpowiedź, instrukcja '$ (" # Type "). remove();' usunie wybrany obiekt. Prawidłowym sposobem jest użycie '$ (" # Type "). Html ('');'. Brakuje również interpunkcji w kodzie odpowiedzi. Naprawiłem to. –