<select> verschiedene value werte ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Also noch ein Versuch:

    Ich habe ein <select und innerhalb gebe ich die <option mittels MYSQL while abfrage aus. Nun wäre es nicht schön noch nur einen Wert "von value" zu bekommen. Mit dem Wêrt Preis kann ich zwar rechnen aber den Wert ID bräuchte ich zum späteren speichern


    Das heisst ich bin auch nicht abgeneigt die Lösung mit JS zu proggen
    Zuletzt geändert von sepp; 27.09.2009, 02:59.

    Kommentar


    • #17
      Aber? Also was ist jetzt die Frage?
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #18
        Ich versuche es noch mal:

        Mein Select
        PHP-Code:
        <select onchange="preiseintrag(<? echo"$detail_id" ?>)" name="produkt[<? echo"$detail_id" ?>]">
        <? $abfrage_produkte = "SELECT * from rg_artikel order by name_art asc";
        $result_produkte = mysql_query($abfrage_produkte,$db) or die(mysql_error());
        while ($row = mysql_fetch_array ($result_produkte)) 
                    {
                    $id_prod = $row["id"];
                    $name_prod = $row["name_art"];
                    $preis_prod = $row["preis_art"];
        ?><option value="<? echo"$preis_prod";?>"><?php echo "$name_prod ¦ $beschreib_prod"?></option> <? }?></select>
        <? }?>
        Soweit so gut. Mittels diesem Wert von dem <Select produkt[<? echo"$detail_id" ?>] kann ich via JS rechnen.

        zum Speichern benötige ich aber zusätzlich die ID dieses ausgeählten Artikels - also von produkt[<? echo"$detail_id" ?>]

        Die Frage - wie kann ich die ID auslesen und ausgeben?

        Kommentar


        • #19
          Nochmal, du sollst für das value-Attribut von option die ID nehmen und nicht den blöden Preis. Du brauchst dort einen eindeutigen Wert, sonst weißt du nicht, welches Produkt gewählt wurde, wenn mehrere den gleichen Preis haben.

          In der Schleife baust du parallel zu der Select-Box einen String auf, in dem JS-Code für ein Objektliteral steht (ich hatte schon erwähnt, wie sowas aussehen könnte). Nach dem select fügst du einen script-Block ein, in den du das mit PHP gebaute Objektliteral schreibst, damit es in JS zur Verfügung steht.

          Beim Auswählen eines Eintrags hast du dann im value die ID stehen und mit der kannst du in diesem Objektliteral den Lookup machen und hast Name, Preis und alles andere aus der DB.

          Da der ganze Code generiert wird, ist das mit den Expandos nicht ganz so einfach wie in einer statischen Seite, daher kommst du mit der eben beschriebenen Variante imho auf jeden Fall besser.

          Edit: Wenn dir das leichter fallen würde, kannst du auch in PHP die Tabelle in ein Array schreiben und das zu JSON umwandeln und in einen JS-Block schreiben. Das hat den gleichen Effekt, nur dass du das Objektliteral dabei nicht als String zusammenbauen musst, weil json_encode das für dich übernimmt.
          Zuletzt geändert von AmicaNoctis; 27.09.2009, 03:49.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #20
            Zitat von sepp Beitrag anzeigen
            Mir ist schon klar das man im html Tag <select nur ein value haben kann, das ist ja genau meine Frage! Gibt es keinen JS befehl der mir erlaubt weitere value auszulesen?
            Wie ich bereits in meiner ersten Antwort schrieb - wenn du mehrere Einzelwerte zu einem einzigen Wert zusammenfassen willst, die du nachher wieder aufdröselst (ja, auch möglich) - dann mach das.

            Warum Grundkenntnisse?
            Weil die Fragen, die du hier in letzter Zeit so gestellt hast, stark darauf hindeuten, dass es dir daran massivst fehlt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Ja, mir gefällt es auch besser wenn die Id ausgegeben wird!

              Aber so funktioniert es auch nicht:
              HTML-Code:
              <script type="text/JavaScript">
              var dbTabelle = {
              	<? echo"$id_prod"; ?>: { id: "<? echo"$id_prod"; ?>", name: "<? echo"$name_prod"; ?>", preis: "<? echo"$preis_prod"; ?>" };
              </script>

              Kommentar


              • #22
                Zitat von wahsaga Beitrag anzeigen
                wenn du mehrere Einzelwerte zu einem einzigen Wert zusammenfassen willst, die du nachher wieder aufdröselst (ja, auch möglich) - dann mach das.
                Davon würde ich dringend abraten, weil solche Hacks nur potentielle sofortige oder künftige Fehlerquellen darstellen.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #23
                  Und was wäre Dein konkreter Vorschlag?

                  Kommentar


                  • #24
                    Mein konkreter Vorschlag?!? Den hab ich mehrmals beschrieben, wenn du das nicht gelesen hast kann ich nichts dafür. Wenn du es nicht verstanden hast, hättest du mal nachlesen können. Wenn du trotz Nachlesens einige Details nicht verstanden hast, hättest du konkrete Rückfragen stellen können. Was willst du also noch? Wenn ich noch konkreter werden würde, hätte ich deinen Code schon fertig geschrieben und warum sollte ich das tun, wenn ich erstens normalerweise damit mein Geld verdiene und zweitens du keinerlei eigene Mühe erkennen lässt?
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #25
                      Mein letzer Versuch hast Du nicht kommentiert!

                      Code:
                      <script type="text/JavaScript">
                      var dbTabelle = {
                      	<? echo"$id_prod"; ?>: { id: "<? echo"$id_prod"; ?>", name: "<? echo"$name_prod"; ?>", preis: "<? echo"$preis_prod"; ?>" };
                      </script>

                      Kommentar


                      • #26
                        Nein, hab ich nicht, ich weiß. Weil dir selbst auffallen sollte, dass das keine Tabelle sein kann, sondern nur eine einzelne Row. Du müsstest das innerhalb der Schleife immer weiter ergänzen.

                        Ich hab jetzt erstmal genug. Hier ist Beispielcode, den du nur noch auf deine Namen, Werte u.s.w. anpassen musst. Ich hoffe, du kommst damit klar, wenn nicht kann ich dir auch nicht helfen, da das im Prinzip schon die Lösung ist:

                        PHP-Code:
                        <?php
                            $ch 
                        mysql_connect("host""user""pass");
                            
                        mysql_set_charset("utf8"$ch);
                            
                        mysql_select_db("dbname");
                            
                        $query "select * from tablename";
                            
                        $rh mysql_query($query$ch);
                            
                        $rows = array();
                        ?>
                                    <select name="dropDown" onchange="dropDownChanged(this)">
                        <?php
                            
                        while ($row mysql_fetch_assoc($rh)) {
                                
                        $rows[$row["id"]] = $row;
                        ?>
                                        <option value="<?php echo(htmlspecialchars($row["id"])); ?>"><?php echo(htmlspecialchars($row["name"])); ?></option>
                        <?php
                            
                        }
                        ?>
                                    </select>
                                    <script type="text/javascript">/*<![CDATA[*/
                                        var table = <?php echo(json_encode($rows)); ?>;
                                        function dropDownChanged (pTarget) {
                                            var id = pTarget.options[pTarget.selectedIndex].value;
                                            alert(table[id].prize);
                                        }
                                    /*]]>*/</script>
                        Amica
                        Zuletzt geändert von AmicaNoctis; 27.09.2009, 13:58.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #27
                          Zitat von AmicaNoctis Beitrag anzeigen
                          Davon würde ich dringend abraten, weil solche Hacks nur potentielle sofortige oder künftige Fehlerquellen darstellen.
                          Na ja, wenn man es vernünftig macht, sehe ich da weniger ein Problem.
                          Es ist im Grund nichts weiter als eine Serialisierung.


                          Zitat von sepp Beitrag anzeigen
                          Mein letzer Versuch hast Du nicht kommentiert!
                          Du auch nicht! Du hast nur wieder einen kurzen Code-Schnippsel hier abgeladen, mit keiner weiteren Beschreibung als "funzt nich".
                          Gewöhne dir das bitte ab, und liefere vernünftige Problembeschreibungen.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #28
                            @AmicaNoctis
                            Herzlichen Dank nun habe ich es auch geschafft und werde Dich deswegen nicht mehr belästigen

                            Kommentar


                            • #29
                              Zitat von sepp Beitrag anzeigen
                              Herzlichen Dank nun habe ich es auch geschafft
                              Das freut mich.

                              Zitat von sepp Beitrag anzeigen
                              werde Dich deswegen nicht mehr belästigen
                              Belästigen ist der falsche Ausdruck, ich fand nur deine Mitarbeit in diesem Thread etwas dürftig und war daher zwischendurch etwas genervt. Beim nächsten Mal achte darauf, Antworten genau zu lesen, Hinweise zu befolgen, angesprochene Themen und Stichworte zu googeln, eigene Bemühungen zu demonstrieren und Probleme möglichst konkret zu beschreiben. Das ist für alle erquicklicher.

                              Beste Grüße,

                              Amica
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X