Sobald der ausgewählte Wert von dropdown1
geändert wird, muss ich die entsprechenden Daten für dropdown1
's ausgewählten Wert auffüllen. Die aufgefüllten Daten müssen an dropdown2
angehängt werden.Ajax-Array wird nicht in Dropdown-Liste aufgefüllt Wählen Sie
Ich überprüfte verwandte Antworten und Fragen dazu und versuchte fast jede mögliche Lösung, aber ich kann es immer noch nicht zum Laufen bringen.
html
<body>
<select id="dropdown1" class='form-control-static'>
<option value="value1">Value 1</option>
<option value="value2">Value 2</option>
</select>
<select id="dropdown2" class='form-control-static'>
</select>
<script src="js/jquery.js"></script>
<script src="js/externalJavascript.js"></script>
</body>
externalJavascript
$('select[name=dropdown1]').change(function (e) {
var selected = $('select[name=dropdown1]').val()
alert(selected);
$.ajax({
type: 'POST',
data: { name: selected },
url: 'dbaccess.php',
datatype: 'json',
success: function(data) {
alert(data);
var $select = $('#dropdown2');
$.each(data, function(key, value) {
$select.append('<option value=' + key + '>' + value.name + '</option>');
});
}
});
});
dbaccess.php
<?php
$name = $_POST['name'];
$name_id = getIdByName($name);
$names_arr = array();
$names_arr = getNamesByNameId($name_id);
//var_dump($names_arr);
echo json_encode($names_arr);
?>
Die Nachricht Alarm Fenster wieder korrekte Daten wie in SQL-Editor alert(data)
zeigt zurückgegeben, wie
[{"name":"My Name 1"},{"name":"My Name 2"},{"name":"My Name 3"}]
Aber es wird einfach nicht anhängen, um die dropdown2
egal wählen, was ich tue. Ich sehe kein Problem mit der ajax
.
Irgendwelche Gedanken oder Ideen? Ich werde jede Hilfe oder Anregung schätzen.
Vielen Dank.
Gibt es Fehler in der Konsole? Findet der Code das Auswahlelement? Geht der Code in die Schleife? console.log() ist dein Freund. Und nicht alle Indizes haben "Namen" in ihnen? – epascarello