PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben (http://www.selfphp.de/forum/showthread.php?t=22071)

OrionXPdeluxe 01.09.2009 08:29:44

dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Hi,

ich hoffe hier kann mir jemand ein paar nützliche Tips geben. Vorab eine kleine Erklärung. Ich soll ein Online-Katalog erstellen und die Produkte sollen mit Hilfe von Dropdown-Listen angewählt werden. Der User soll aber, mit Hilfe von mehreren Listen aus verschiedenen Produktarten (z.B. Produkt - Farbe - Ausstattung) auswählen können.
Ich habe also in PHP diverse Dropdown-Listen erstellt, deren Inhalt aus einer Datenbank eingelesen werden. Funktioniert auch einwandfrei, naja bis auf die Umlaute, aber das ist das kleinere Übel. Nun möchte ich, dass, wenn ein Wert in der Liste ausgewählt ist, die Produkte mit Bild und Beschreibung angezeigt werden. Hier ist der Code einer der Dropdown-Listen

PHP-Code:

 $result mysql_query("SELECT * FROM Steinarten");
 echo 
"<select>" ;
            while (
$res mysql_fetch_assoc($result)) {
                
$a $res[art1]; 
                
$b $res[art2];
                
$c $res[art3];
                
$d $res[art4];
                
$e $res[art5];
                            echo 
"<option>Lagerstein Wahl:</option>";
                                echo 
"<option>$a</option>";
                echo 
"<option>$b</option>";
                echo 
"<option>$c</option>";
                echo 
"<option>$d</option>";
                echo 
"<option>$e</option>";
                
            } 


Domi 01.09.2009 09:18:05

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Hi,

ich glaube was du willst ist AJAX. Würde das ganze mit AJAX machen, wenn JS kein Problem ist. Du nimmst das Dropdown und schreibst dort z.b. als Wert alle IDs rein. Bei einem onChange kannst du ganz easy per Ajax zu genau der ID dann den Datensatz laden und anzeigen, z.b. eben Preis, Bilder, ... oder sogar weitere, spezifischere Auswahlboxen (wichtig wenn es einen Artikel einfach in mehrere Ausführungen gibt)

Natürlich ist das ganze auch ohne Ajax möglich... aber vielleicht versteh ich auch deine Frage noch garnicht so ganz, was du genau willst und wo du genau Probleme hast.

Domi

OrionXPdeluxe 01.09.2009 09:41:03

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Danke für deine schnelle Antwort.

Soweit scheinst du die Problematik erkannt zu haben, allerdings sollte alles auf PHP laufen. Habe mir mittlerweile überlegt, alle Daten in mysql mit joins zu verbinden und dann abzufragen. D.h. ich habe eine komplette Auflistung der Produkte, incl. Farbe, Ausstattung usw... in der Datenbank und frage diese ab. Und je nach dem was in der Dropdown-Liste angewählt wird, folgt eine Auflistung der Produkte.
Ich muss dazu sagen, dass ich das erste mal mit Datenbanken arbeite. Ich weiss aber, dass es möglich ist, einem Wert weitere Werte zuzuweisen und einen Verweis zu Bildern zu geben.
Ich denke mal, wenn ich alle diese Informationen in der Datenbank hätte, wäre der Zugriff mittels PHP einfacher.
Liege ich da richtig??
Ich weiss es ist ziemlich verwirrend

Domi 01.09.2009 09:46:13

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Hi,

na klar machst du das mit PHP! Die Frage ist nur: möchtest du jedes mal eine Absenden Button klicken und die Seite neu Laden um die Daten anzuzeigen, oder möchtest du das automatisch anzeigen lassen ohne Seitenreload sofort nach Auswahl im Dropdown? Ersters geht einfach so, für zweiteres nimmst du AJAX zur Hilfe (empfohlen, wenn JS kein Problem darstellt für die Benutzer).

Domi

OrionXPdeluxe 01.09.2009 09:54:58

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Also das mit dem Absende-Button hatte ich ursprünglich vor. Von der Variante wollte ich eigentlich weg.
Ich hätte schon gerne das alles automatisch nach der Auswahl angezeigt wird. Allerdings muss ich zugeben, dass ich mit JS absolut keine Erfahrung habe.
Und ausserdem, bin ich mir jetzt gerade unsicher, welche Variante besser ist, die mit ohne ohne Absende-Button, da ich ja insgesamt 3 Dropdown-listen habe und eine Suchleiste für die Suche nach der Art.-Nr.?
Habe gerade voll das Chaos im Hirn

Domi 01.09.2009 10:29:52

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Hi,

also das mit dem JS / Ajax ist ganz einfach. Sieht Anfangs kompliziert aus, aber ist easy und toll. Man muss sich halt im klaren sein, dass das alles nicht funktioniert, wenn die User JS aushaben, aber das könnte man mittlerweile vorraussetzen, je nach Umfeld (Web oder Firmenintranet etc).

Wenn du es komfortabilität und usability wichtig findest, dann willst du es mit AJAX machen! So hast du auch die Möglichkeit, z.b. nach auswählen der ersten Dropdownbox einfach weitere Boxen ganz dynamisch anzuzeigen (alles aus der DB gewählt).

Such mal easy nach Ajax bei google, da findest einiges, im Endeffekt ist es aber immer so, dass du eine Seite hast die nur die Daten ausspuckt, die dann per JS angezeigt werden (ohne Design usw) und die normale Seite, die dann diese Seite (nach)lädt. Das nachladen könnte etwa so aussehen:

PHP-Code:

    var xmlhttp;
    if (
window.XMLHttpRequest)
    {
          
// code for IE7+, Firefox, Chrome, Opera, Safari
          
req=new XMLHttpRequest();
    }
    else if (
window.ActiveXObject)
      {
          
// code for IE6, IE5
          
req=new ActiveXObject("Microsoft.XMLHTTP");
      }
    else
      {
          
alert("Your browser does not support XMLHTTP!");
      }

      
req.open("GET""/ajax/foo/oben/"+$oben+"/unten/"+$unten+"/links/"+$links+"/rechts/"+$rechtstrue);
      
req.onreadystatechange = function()
      {
          if (
req.readyState==4)
          {
              if (
req.status==200)
              {
                  
document.getElementById("mapdetails").innerHTML req.responseText;
              
              }
          }
      }
      
req.send(null

was du dann mit den Daten machst die dort kommen .. direkt anzeigen oder per JS noch optmieren und dann anzeigen usw bleibt dir überlassen :)

So, viel Text und hoffentlich große Hilfe?

Gruß
Domi

OrionXPdeluxe 01.09.2009 10:36:54

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Super danke!!!

Dann werd ich es mal auf diesem Weg versuchen!

Werde dann spätestens morgen nochmal posten, in wie weit ich das Problem mit deiner Hilfe lösen konnte.

Schonmal vielen Dank

Domi 01.09.2009 10:40:36

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Hi,

noch als kleine Hilfestellung, den code, den ich oben geschrieben habe, ist Javascript, diesen solltest du am besten in eine JS-Funktion welche du dann mit dem Dropdown mit einem onChange event aufrufst.

Domi

Domi 01.09.2009 10:43:20

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Zitat:

Zitat von OrionXPdeluxe (Beitrag 130423)
PHP-Code:

 $result mysql_query("SELECT * FROM Steinarten");
 echo 
"<select>" ;
            while (
$res mysql_fetch_assoc($result)) {
                
$a $res[art1]; 
                
$b $res[art2];
                
$c $res[art3];
                
$d $res[art4];
                
$e $res[art5];
                            echo 
"<option>Lagerstein Wahl:</option>";
                                echo 
"<option>$a</option>";
                echo 
"<option>$b</option>";
                echo 
"<option>$c</option>";
                echo 
"<option>$d</option>";
                echo 
"<option>$e</option>";
                
            } 


und nochwas. Das ist auch sehr merkwürdig, was du hier machst? Wie sieht denn deine Tabelle aus? Wieso gibt es nicht für jede Steinart eine eigene Zeile (nicht Spalte). Denn dann kannst du auch ganz einfach mit einer Schleife für jede Art eine option-Tag hinzufügen und musst es nicht einzelt für art1-5 machen.

OrionXPdeluxe 01.09.2009 13:51:17

AW: dropdown-listen Auswahlen erkennen und Ergebnisse ausgeben
 
Ja genau das veruche ich gerade hinzubekommen. Das heisst ich habe jetzt in der Tabelle eine Spalte mit ID, Steinart, Material, Symbolik und Artikelnummer angelegt.
Jetzt versuche ich seit geschlagenen 2 Stunden in die Tabelle die dazugehörigen Daten in die jeweiligen Spalten zu setzen. Nur ich bekomme das mit dem Hinzufügen der Spalten nicht gebacken. Zur Information: Ich arbeite mit Xampp, also über die Oberfläche von phpmyadmin


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:31:20 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.