24.03.2022, 16:34
Hallo zusammen,
ich fange gerade mit Html/php/JS an und bastel mit gerade mit einer mysql Datenbank für mich daheim eine kleine interne Homepage auf und hänge gerade an einem Problem.
Ich würde gerne über dropdowns im browser daten auswählen mit unterauswahlmöglichkeiten in mehreren dropdowns und dann ein Ergebnis anzeigen lassen. Wobei die Select Auswahlmöglichkeiten von dem jeweiligen Feld voher abhängen.
Also zum Beispiel soll es so aussehen.
Wobei die Auswahl von Feld1 die von Feld2 beeinflußt und Feld 3 wird von Feld1 und Feld2 beeinflußt.
Ich bin gerade dabei mir das ganze zusammen zu bauen/suchen und habe bisher folgenden Code.
Meine Index.php
Die php Datei info_ziehen.php sieht folgendermaßen aus:
Nun verstehe ich nicht, wie mir die info_ziehen.php mehr als einen Wert zurückgeben kann, um die beiden Felder in der in der Index.php zu füllen.
Mit einem Wert klappt es um die id="db_mat_ano_bez" zu befüllen, bei mehreren leider nicht . Da verstehe ich den Ablauf zu wenig.
Hoffe mir kann jemand erklären wie ich das ausbauen/besser aufbauen kann.
Danke euch.
ich fange gerade mit Html/php/JS an und bastel mit gerade mit einer mysql Datenbank für mich daheim eine kleine interne Homepage auf und hänge gerade an einem Problem.
Ich würde gerne über dropdowns im browser daten auswählen mit unterauswahlmöglichkeiten in mehreren dropdowns und dann ein Ergebnis anzeigen lassen. Wobei die Select Auswahlmöglichkeiten von dem jeweiligen Feld voher abhängen.
Also zum Beispiel soll es so aussehen.
Code:
<select name="Feld1">
<option>a</option>
<option">b</option>
</select>
<select name="Feld2"></select>
<select name="Feld3"></select>
Wobei die Auswahl von Feld1 die von Feld2 beeinflußt und Feld 3 wird von Feld1 und Feld2 beeinflußt.
Ich bin gerade dabei mir das ganze zusammen zu bauen/suchen und habe bisher folgenden Code.
Meine Index.php
Code:
<?php require("header.php"); ?>
<div id="content">
<h1>Eingabe Nachweis</h1>
<script>
function getinfo(str) {
if (str == "") {
document.getElementById("db_mat_ano_bez").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("db_mat_ano_bez").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","info_ziehen.php?q="+str,true);
xmlhttp.send();
}
}
</script>
// Verbindung herstellen zum Server
include "connectdb.php";
$mysqli = $conn; // Aus der connectdb.php
$sql_mat_anode = "SELECT * FROM artikel_id WHERE Material='Anodenfolie'";
$all_category_mat_anode = mysqli_query($mysqli,$sql_mat_anode);
<th><input type="text" name="Mat_anode_art" ></th>
<th><select id="Mat_anode_hersteller" name="Mat_anode_hersteller" onchange="getinfo(this.value)" required>
<?php
while ($category_mat_anode = mysqli_fetch_array(
$all_category_mat_anode,MYSQLI_ASSOC)):;
?>
<option value="<?php echo $category_mat_anode["Lieferant"];
?>">
<?php echo $category_mat_anode["Lieferant"];
?>
</option>
<?php
endwhile;
?>
</select>
<div id="db_mat_ano_bez" name="Mat_anode_bezeichnung">Bitte Hersteller wählen</div>
<div id="db_mat_ano_art" name="Mat_anode_artikelnr">Bitte Hersteller wählen</div>
Die php Datei info_ziehen.php sieht folgendermaßen aus:
PHP-Code:
<!DOCTYPE html>
<html>
<body>
<?php
$q = $_GET['q'];
include "connectdb.php"; //database connection
if (!$conn) {
die('Could not connect: ' . mysqli_error($conn));
};
$sql="SELECT * FROM artikel_id WHERE Material='Anodenfolie' and Lieferant = '".$q."' ";
$result1 = mysqli_query($conn,$sql);
?>
<select id="db_mat_ano_bez" >
<option value="">Bitte auswählen:</option>
<?php
while ($category1 = mysqli_fetch_array(
$result1,MYSQLI_ASSOC)):;
?>
<option value="<?php echo $category1["Bezeichnung / Beschreibung"];?>">
<?php echo $category1["Bezeichnung / Beschreibung"];
?>
</option>
<?php
endwhile;
?>
</select>
<?php
mysqli_close($conn)
?>
</body>
</html>
Nun verstehe ich nicht, wie mir die info_ziehen.php mehr als einen Wert zurückgeben kann, um die beiden Felder in der in der Index.php zu füllen.
Mit einem Wert klappt es um die id="db_mat_ano_bez" zu befüllen, bei mehreren leider nicht . Da verstehe ich den Ablauf zu wenig.
Hoffe mir kann jemand erklären wie ich das ausbauen/besser aufbauen kann.
Danke euch.