aa: Bilder in Dropdown

Guten Tag.
Ich würde gerne aus meiner Datenbank ein DropDown erstellen, in dem jedoch das Bild direkt angezeigt wird. Durch <img src=...> zwischen den <option> Tags geht es ja nicht. Wie kann ich es nun bewerkstelligen?

  1. Grüße,

    Ich würde gerne aus meiner Datenbank ein DropDown erstellen, in dem jedoch das Bild direkt angezeigt wird. Durch <img src=...> zwischen den <option> Tags geht es ja nicht. Wie kann ich es nun bewerkstelligen?

    "faken" - du kannst die dropdownliste "fälschen" - allerdings wäre das etwas umständlich und ohne JS (wenn du IE dabei haben willst, möge seine saat in den salzigen boden fallen) wird es nicht gehen.

    wie sehr brauchst du es?

    MFG
    bleicher

    1. wie sehr brauchst du es?

      ich bin schon ganz kibbelig, besorgs mir! :D
      SCNR

      1. Grüße,

        wie sehr brauchst du es?
        ich bin schon ganz kibbelig, besorgs mir! :D

        umdrehen, bücken!

        MFG
        bleicher

        1. Hallo,

          wie sehr brauchst du es?
          ich bin schon ganz kibbelig, besorgs mir! :D

          umdrehen, bücken!

          nanananana .... ihr Sch**** ... das gehört wohl nicht ins Selfhtml-Forum! :)

          MfG. Christoph Ludwig

          --
          Wo die Sprache aufhört, fängt die Musik an...
          Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
          Go to this
          1. Grüße,

            wie sehr brauchst du es?
            ich bin schon ganz kibbelig, besorgs mir! :D

            umdrehen, bücken!

            nanananana .... ihr Sch**** ... das gehört wohl nicht ins Selfhtml-Forum! :)

            seit wann gehören keyzuweisungen der bücken[0]=>"umdrehen"; form nicht mehr hierhin O,O?

            MFG
            bleicher

  2. Ich würde gerne aus meiner Datenbank ein DropDown erstellen, in dem jedoch das Bild direkt angezeigt wird. Durch <img src=...> zwischen den <option> Tags geht es ja nicht. Wie kann ich es nun bewerkstelligen?

    vergiss alles was du an informationen hast und versuche dir zu überlegen, was du an informationen transportieren muss und wie du sie in html verfasst (es ist unerheblich, ob die informationen aus der datenbank kommen oder nicht), danach kannst du das ganze mit css so formatieren, dass es wie dein drop-down aussieht und ggf mit javascript "veredeln"

    erst dann mach dir gedanken, wie das aus der datenbank kommt

    ist es eine bildergalerie mit auswählbaren bildern?
    eine liste könnte zb die lösung sein:

    <ul>  
      <li><a href="#1"><img src="foo1" alt"bar1" /></a></li>  
      <li><a href="#1"><img src="foo2" alt"bar2" /></a></li>  
      <li><a href="#1"><img src="foo3" alt"bar3" /></a></li>  
    </ul>
    
  3. echo $begrüßung;

    Ich würde gerne aus meiner Datenbank ein DropDown erstellen, in dem jedoch das Bild direkt angezeigt wird.

    Da gibts doch was von SELFHTML: Option-Elemente mit einer Grafik hinterlegen.

    echo "$verabschiedung $name";

    1. Hey danke.
      Ich glaube, dass müsste es tun. Die Link zum Bild bezieht sich dann aber auf den aktuellen Ordner in dem sich auch das Script befindet? Kann man sonst einfach "../images/de.gif" dorthin platzieren?

      1. echo $begrüßung;

        Ich glaube, dass müsste es tun. Die Link zum Bild bezieht sich dann aber auf den aktuellen Ordner in dem sich auch das Script befindet? Kann man sonst einfach "../images/de.gif" dorthin platzieren?

        Ein relativer Verweis bezieht sich aus der Sicht des Browsers auf das Dokuments, in dem dieser Verweis auftaucht. Bei eingebettetem CSS im Hauptdokument verhalten sich die Verweise wie die im restlichen Dokument. Ein nachgeladenes CSS-Dokument aus einem anderen Unterordner hat seine eigene "Verweisbasis" in eben diesem Unterordner.

        echo "$verabschiedung $name";

        1. Wie kann ich denn dieses

          <!--

          option[value=deutschland]:before { content:url("de.gif"); }
              option[value=irland]:before { content:url("ie.gif"); }

          -->

          Variable machen?

          $select = ("SELECT name,url FROM images");  
             $query = mysql_query($select);  
             while ($ds = mysql_fetch_object($query)) {  
                                  $name = $ds -> name;  
             $url = $ds -> url;  
             echo "option[value='$name']:before { content:url('"$url'"); }
          

          So?

          1. echo $begrüßung;

            Wie kann ich denn dieses [...] Variable machen?
            [...]
            So?

            Wenn es das Ergebnis bringt, das du erwartest, dann lautet die Anwort: Ja, aber

            $select = ("SELECT name,url FROM images");
            $query = mysql_query($select);

            Wenn du denkst, dass diese einfache Abfrage keinen Fehler erzeugt und du deshalb alle Fehlerbehandlung weglassen kannst, dann irrst du dich. Es sind schon Server beim Abarbeiten eines Statements gestorben. Das muss nicht an deinem Statement liegen, aber du bist mit betroffen, wenn es bei anderen passiert. mysql_query() liefert dann false zurück, wovon die Fetch-Funktionen aber keine Daten holen können und sich zu Recht beschweren.
            or die(…); ist aber keine Fehlerbehandlung.

            while ($ds = mysql_fetch_object($query)) {
               $name = $ds -> name;
               $url = $ds -> url;

            Welchem Zweck dient das Umkopieren? Solange du nicht den Speicherherstellern zu mehr Nachfrage verhelfen willst, kannst du das weglassen.

            echo "option[value='$name']:before { content:url('"$url'"); }[/code]

            Wenn ein komplexer Variablenname nicht richtig innerhalb von "" erkannt wird, kann man ihn in {} betten.

            echo "$verabschiedung $name";

            1. $select = ("SELECT name,url FROM images");
              $query = mysql_query($select);

              Wenn du denkst, dass diese einfache Abfrage keinen Fehler erzeugt und du deshalb alle Fehlerbehandlung weglassen kannst, dann irrst du dich. Es sind schon Server beim Abarbeiten eines Statements gestorben. Das muss nicht an deinem Statement liegen, aber du bist mit betroffen, wenn es bei anderen passiert. mysql_query() liefert dann false zurück, wovon die Fetch-Funktionen aber keine Daten holen können und sich zu Recht beschweren.
              or die(…); ist aber keine Fehlerbehandlung.

              Hallo,
              Wie kann ich das denn dann verhindern?

              Als ich

              $name = $ds -> name;
                 $url = $ds -> url;

              weggelassen hatte, meldet er an anderer Stelle eine nicht definierte Variable.

              1. Mahlzeit aa,

                Wie kann ich das denn dann verhindern?

                Wie kannst Du was verhindern?

                Als ich

                $name = $ds -> name;
                   $url = $ds -> url;

                weggelassen hatte, meldet er an anderer Stelle eine nicht definierte Variable.

                Wie lautet diese Stelle? Was genau war die Fehlermeldung?

                Vielleicht solltest Du die Leerzeichen links und rechts vom "->" weglassen?

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Guten Abend,

                  Dedlfix meinte:

                  Wenn du denkst, dass diese einfache Abfrage keinen Fehler erzeugt und du deshalb alle Fehlerbehandlung weglassen kannst, dann irrst du dich. Es sind schon Server beim Abarbeiten eines Statements gestorben.

                  Das wollte ich verhindern.

                  Er sagte umkopieren mache keinen Sinn. Mit

                  $name = $ds -> name;  
                  $url = $ds -> url;
                  

                  klappt alles bestens. Wenn ich diese Zeilen weglasse, dann kommt die Fehlermeldung bzw. Notice:
                  Notice: Undefined variable: name in ....

                  1. Mahlzeit aa,

                    Er sagte umkopieren mache keinen Sinn. Mit

                    $name = $ds -> name;

                    $url = $ds -> url;

                    
                    > klappt alles bestens.  
                      
                    ... ist aber syntaktisch zumindest fragwürdig und trotzdem immer noch nicht sinnvoll.  
                      
                      
                    
                    > Wenn ich diese Zeilen weglasse, dann kommt die Fehlermeldung bzw. Notice:  
                    > Notice: Undefined variable: name in ....  
                      
                    Natürlich, eine derartige Variable wird es dann wohl nicht geben. Lies Dir nochmal den letzten Satz meines vorherigen Postings durch und folge dem Link (den setze ich nicht nur so aus Spaß)!  
                      
                      
                    MfG,  
                    EKKi  
                    
                    -- 
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    
                2. echo $begrüßung;

                  Vielleicht solltest Du die Leerzeichen links und rechts vom "->" weglassen?

                  Kann man machen, ist auch allgemein so üblich, aber nicht zwingend notwendig. Man kann an ziemlich vielen Stellen Leerzeichen einschieben, wo man das nach den am meisten verbreiteten (ungeschriebenen und unbewusst eingesetzten) Coding-Style-Regeln nicht macht. Es behindert nur den Lesefluss, hat jedoch meist keine Auswirkungen auf das Ergebnis des Parser-Prozesses.

                  echo "$verabschiedung $name";

                  1. Mahlzeit dedlfix,

                    hat jedoch meist keine Auswirkungen auf das Ergebnis des Parser-Prozesses.

                    Innerhalb eines mit " begrenzten Strings wage ich Deine Aussage zu bezweifeln. Ich schätze und behaupte, dass der Parser etwas wie

                    echo "Foobar bla blubb $bar -> baz dideldei dummdibla ...";

                    NICHT richtig erkennt.

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. echo $begrüßung;

                      hat jedoch meist keine Auswirkungen auf das Ergebnis des Parser-Prozesses.
                      Innerhalb eines mit " begrenzten Strings wage ich Deine Aussage zu bezweifeln.

                      "Meist" bedeutet, dass eine Aussage in vielen, aber nicht allen Fällen zutrifft. Der von dir genannte Fall ist ein Kandidat aus der Lücke zwischen "meist" und "immer". Außerdem kann man uneindeutige Variablenbezeichner innerhalb von ""-Strings mit {} einrahmen und dann kannst du da wieder Leerzeichen drin stehen haben.

                      echo "$verabschiedung $name";

                      1. Mahlzeit dedlfix,

                        Außerdem kann man uneindeutige Variablenbezeichner innerhalb von ""-Strings mit {} einrahmen

                        Stimmt, das hattest Du ja auch bereits geschrieben.

                        und dann kannst du da wieder Leerzeichen drin stehen haben.

                        Ich hatte den Eindruck, dass das aa(a) nicht ganz klar war, deswegen habe ich nochmal auf die Leerzeichenproblematik hingewiesen ...

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              2. echo $begrüßung;

                Wenn du denkst, dass diese einfache Abfrage keinen Fehler erzeugt und du deshalb alle Fehlerbehandlung weglassen kannst, dann irrst du dich. Es sind schon Server beim Abarbeiten eines Statements gestorben. Das muss nicht an deinem Statement liegen, aber du bist mit betroffen, wenn es bei anderen passiert. mysql_query() liefert dann false zurück, wovon die Fetch-Funktionen aber keine Daten holen können und sich zu Recht beschweren.
                Wie kann ich das denn dann verhindern?

                Du kannst im PHP-Script nicht verhindern, dass der Datenbankserver Fehler meldet. Du musst sie nur in deinem Scritp einplanen und beim Auftreten den normalen Programmfluss verlassen und eine angemessene Alternative ausführen. Was angemessen ist, kann ich dir nicht sagen. Dem Anwender gegenüber wäre eine Tröstmeldung angebracht, aber ohne technische Details. Die interessieren den Anwender nicht und gehen ihn auch nichts an, wohl aber den Administrator. Ihn geeignet zu informieren wäre sinnvoll.

                if ($query = mysql_query($select)) {
                    // normal weiter
                  } else {
                    // Alternative im Fehlerfall
                  }

                Als ich

                $name = $ds -> name;
                   $url = $ds -> url;
                weggelassen hatte, meldet er an anderer Stelle eine nicht definierte Variable.

                Wenn du hier $name nicht mehr erzeugt, kannst du an anderer Stelle nicht damit arbeiten. Logisch, nicht? Da der Wert, den du haben willst, bereits in $ds->name steht, brauchst du nicht extra noch $name anzulegen und es wäre sinnvoll, stattdessen $ds->name überall dort zu notieren, wo du auf den Wert zugreifen möchtest.

                echo "$verabschiedung $name";

                1. Morgen,

                  um nochmal das Thema diesen Threads aufzugreifen. Ich habe jetzt dieses probiert, jedoch scheint es nicht zu klappen. Es zeigt mir das Bild nicht an, nur die Bezeichnung.

                   <tr>  
                    <style type="text/css">  
                    <!--  
                     <?php  
                     $select = ("SELECT name,url FROM images");  
                     $query = mysql_query($select) or die (mysql_error());  
                     while ($ds = mysql_fetch_object($query)) {  
                     $ds->name;  
                     $ds->url;  
                     echo "option[value=".$name."]:before { content:url(".$url."); }";  
                     }  
                     ?>  
                    -->  
                    </style>  
                    <p><b>Image:</b>  
                     <select size="1" name="image" class="dropmenu" value="">  
                     <?php $select = ("SELECT id,name,url FROM images");  
                     $query = mysql_query($select);  
                     echo "<option value=\"\"></option>";  
                     while ($ds = mysql_fetch_object($query)) {  
                     $ds->id;  
                     $ds->name;  
                     echo "<option value=\"".id."\">".$name."</option>";  
                     }  
                    ?>  
                    </select>  
                      </p>  
                   </tr>
                  

                  Jedoch kommt jetzt auch noch ein zusätzliche Fehlermeldung:
                  Notice: undefined variable name ...
                  Bei $name = $ds -> name; passierte dies nicht.

                  1. Mahlzeit aa(a),

                    <tr>
                      <style type="text/css">
                      <!--
                       <?php
                       $select = ("SELECT name,url FROM images");
                       $query = mysql_query($select) or die (mysql_error());
                       while ($ds = mysql_fetch_object($query)) {
                       $ds->name;

                    Was soll das bewirken?

                    $ds->url;

                    Was soll das bewirken?

                    echo "option[value=".$name."]:before { content:url(".$url."); }";

                    Woher kommt die Variable $name? Woher kommt die Variable $url?

                    Wie wär's, wenn Du die beiden sinnlosen Zeilen weglässt und das echo folgendermaßen abwandelst:

                    echo "option[value=".$ds->name."]:before { content:url(".$ds->url."); }";

                    Jedoch kommt jetzt auch noch ein zusätzliche Fehlermeldung:
                    Notice: undefined variable name ...

                    Sicher - wenn Du sie nirgendwo definiert hast, ist das kein Wunder ...

                    Bei $name = $ds -> name; passierte dies nicht.

                    Das ändert immer noch nichts daran, dass dieses Umkopieren in höchstem Maße sinnfrei ist. Und ich rate Dir weiterhin, immer noch und werde das auch in Zukunft tun, die Leerzeichen beim Zugriff auf Eigenschaften und Methoden von Objekten wegzulassen ... bei Operatoren sind Leerzeichen sinnvoll, da sie für Übersichtlichkeit sorgen - in diesem Fall stiften sie aber mehr Verwirrung (sowohl beim Leser als auch beim Parser).

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. N'Abend,

                      natürlich lese ich die antworten, ansonsten würde ich wohl kaum fragen. Aber ich hatte nicht geschaut, ob in 8 Minuten eine neue Antwort geschrieben worden ist. Konnte ja nicht ahnen, dass du so schnell bist ;)

                      Wie definiere ich diese denn dann? Ist definieren dann innerhalb des Echos zum Beispiel per $ds->name leicht machbar?

                      Die Leerzeichen lasse ich jetzt auch immer dort weg und habe schon alle Stellen korrigiert.

                      Und ja, ich bin "recht" neu, deshalb darf man ja wohl fragen dürfen, nicht?! :D

                      1. Mahlzeit aa,

                        Wie definiere ich diese denn dann? Ist definieren dann innerhalb des Echos zum Beispiel per $ds->name leicht machbar?

                        Ähm, "definieren innerhalb es Echos"? Vielleicht solltest Du Dir die Grundlagen zum Thema Variablen in PHP (nochmal) zu Gemüte führen ...

                        Und ja, ich bin "recht" neu, deshalb darf man ja wohl fragen dürfen, nicht?! :D

                        Sicher. Aber wenn Du in PHP Objekte nutzt, solltest Du Dich auch darüber informieren ... oder meinst Du nicht? :-)

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                  2. Das mit dem Bild habe ich hinbekommen. name war falsch. Aber das

                    Notice: undefined variable name ...  
                    Bei $name = $ds -> name; passierte dies nicht.
                    

                    habe ich immer noch nicht raus.

                    1. Mahlzeit aa(a),

                      Notice: undefined variable name ...

                      Bei $name = $ds -> name; passierte dies nicht.

                      
                      > habe ich immer noch nicht raus.  
                        
                      Liest Du eigentlich die [Antworten auf Deine Beiträge](https://forum.selfhtml.org/?t=177671&m=1171925) nicht?  
                        
                      Ich habe das Gefühl, dass Dir wichtige Grundlagen in PHP fehlen ...  
                        
                        
                      MfG,  
                      EKKi  
                      
                      -- 
                      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|