Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
XMLHttpRequest
#1
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.

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.
Zitieren
#2
Ist das noch aktuell ?
Wahr längere Zeit nicht mehr online.

Man muss ja theoretisch bei jeden ändern der Felder , egal ob 1,2 oder 3 die Werte Auslesen und ans Php Script senden , der dann die möglichen Angaben da wieder einfügt.
Ich würde da auch mit JSON arbeiten was meiner Meinung nach Einfacher wäre
Zitieren


[-]
Schnellantwort
Nachricht
Geben Sie hier Ihre Antwort zum Beitrag ein.


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste