Guten Tag liebe Community,
kann mir einer kurz erklären, wie ich am besten an das folgende Problem:
Hintergrund:
Ich muss Standort-Daten aus einer Tabelle holen.(Land/Stadt/Gebäude/Stockwerk/etc)
Das Problem ist, dass ich mehrere DropDown-Listen Generieren muss, die die Werte aus der Tabelle enthält.
Und jetzt wird es kompliziert: Ich muss irgendwie ein Array Generieren dass ich mit JavaScript bearbeiten kann, denn je nach dem was der User in der ersten Liste auswählt muss die nächste Liste dazugehörige Werte entsprechend der Datensätze enthalten.
Sprich wenn Deutschland ausgewählt wird, dann sollen alle Städte in Deutschland in die nächste Liste geschrieben werden.
Nun weiß ich nicht wie ich das machen soll...
Mein PHP-Code sollte alle Datensätze als Array an den Client übergeben und jetzt weiß ich nicht weiter.
Lösungsansatz 1:
Ich suche im Array nach dem ausgewählten und füge das nächste Feld über addOption ein.
Porblem, wie suche ich am besten im Array ? ist es überhaupt ein dimensional ? (Ich kenne nicht die Struktur, die mir von $row = mysqli_fetch_array($rslt,MYSQLI_NUM) gegeben wird )
Lösungsansatz 2:
Ich mache aus dem Array ein String und arbeite mit dem String.
kann mir einer kurz erklären, wie ich am besten an das folgende Problem:
Hintergrund:
Ich muss Standort-Daten aus einer Tabelle holen.(Land/Stadt/Gebäude/Stockwerk/etc)
Das Problem ist, dass ich mehrere DropDown-Listen Generieren muss, die die Werte aus der Tabelle enthält.
Und jetzt wird es kompliziert: Ich muss irgendwie ein Array Generieren dass ich mit JavaScript bearbeiten kann, denn je nach dem was der User in der ersten Liste auswählt muss die nächste Liste dazugehörige Werte entsprechend der Datensätze enthalten.
Sprich wenn Deutschland ausgewählt wird, dann sollen alle Städte in Deutschland in die nächste Liste geschrieben werden.
Nun weiß ich nicht wie ich das machen soll...
Mein PHP-Code sollte alle Datensätze als Array an den Client übergeben und jetzt weiß ich nicht weiter.
Lösungsansatz 1:
Ich suche im Array nach dem ausgewählten und füge das nächste Feld über addOption ein.
Porblem, wie suche ich am besten im Array ? ist es überhaupt ein dimensional ? (Ich kenne nicht die Struktur, die mir von $row = mysqli_fetch_array($rslt,MYSQLI_NUM) gegeben wird )
Lösungsansatz 2:
Ich mache aus dem Array ein String und arbeite mit dem String.
Javascript:
// Alle Inputs mit Event bestücken --> eine Nodelist ist wichtig
var inputArr = document.getElementsByClassName("data");
for (var i = 0 ; i < inputArr.length ; i++){
inputArr[i].addEventListener("change",searchArr);
}
// 1. Bei Auswahl Funtion aufrufen
// 2. Funktion füllt nächste Liste & wird auf enable gesetzt
// Soll statt finden wenn die Maus vom Element weg bewegt wird ???
function searchArr() {
var aswhl = this.options[this.selectedIndex].value;
//var aswhl = this.options[this.selectedIndex].text;
for (var i = 0 ; i < dataArr.length ; i++) {
// Es soll überprüft werden ob der String enthalten ist im Array
if(dataArr[i] == aswhl){
// wenn ja dann soll die nächste Liste aufgefüllt werden
// mit den Werten aus dataArr
}
}
}
function addOption( value, text )
{
var opt = document.createElement( 'option' );
opt.value = value;
opt.appendChild( document.createTextNode( text ) );
this.appendChild( opt );
};
var dataArr = null;
function getData() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if(this.readyState == 4 && this.status == 200){
dataArr = JSON.parse( this.responseText);
}
};
xmlhttp.open("POST", "getData.php", true);
xhttp.setRequestHeader("Content-Standort", "application/x-www-form-urlencoded");
xmlhttp.send();
}
PHP:
<?php
//Dieser Teil muss in Weiterleitung, wegen der Sicherheit
include_once("../PHP/sqlConnect.php");
$con = connect();
$table = "Standort";
$sql = "SELECT * FROM ".$table;
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_execute($stmt) or die("Unable to execute query: " . $stmt->error);
$rslt = mysqli_stmt_get_result($stmt);
if($row = mysqli_fetch_array($rslt,MYSQLI_NUM)){
echo json_encode($row);
}
?>