Sto cercando di fare un html selezionare elenco di aggiornamento opzioni in base a una selezione effettuata su un oggetto di selezione preventiva html. La mia jquery è sotto. Questo viene chiamato correttamente.lista Aggiornamento delle <select> opzioni utilizzando jquery e 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]));
}
});
Come sto usando un Singleton per interfacciarsi con il mio database mySQL, questa funzione jquery chiama un 'intermediario' di file .php chiamato updateTypes.php che è in basso:
include 'databaseInterface.php';
$brand = $_GET["q"];
$typesData = databaseInterface::getBrandTypes($brand);
return $typesData;
Ciò richiede la funzione getBrandTypes nel mio Singleton di seguito:
$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);
la pagina web di rimuovere correttamente le opzioni esistenti dalla funzione jquery ma non riesce a aggiornarli. Sembra andare male quando ho decodificare i dati JSON in jQuery. Perché sta andando storto? Il ciclo per l'aggiornamento dell'oggetto selezionato è appropriato?
Questa risposta è grande, ma come affermato da un altro risposta, l'istruzione '$ ("# Type") rimuovere();.' rimuoverà l'oggetto di selezione. Il modo corretto per farlo è usare '$ (" # Type "). Html ('');'. Manca anche la punteggiatura nel codice della risposta. L'ho risolto –