php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.03.2010, 10:40  
Neuer Benutzer
 
Registriert seit: 08.03.2010
Beiträge: 1
PHP-Kenntnisse:
Anfänger
RichieG befindet sich auf einem aufstrebenden Ast
Standard Verschachtelte Auswahlfenster

Hallo zusammen,

Bin neu hier im Forum…
Habe hier folgenden code zum Thema verschachtelte auswahlfenster gefunden (vom Chriz).
Wie bekomme ich das jetzt hin, wenn ich auf mein Ergebnis button klicke,
dass ich auch ein Ergebnis zu sehen bekomme.

z.b. folgende Auswahl:
A1*B1*C1 --ergebnis button drücken— „ergebnis lautet a1b1c1“
Oder
A3*B1*C2 – ergebnis button drücken – „ergebnis lautet a3b1c2“ usw…

Kann mir da jemand weiterhelfen bitte???

Vielen dank.

Hier der code:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        
        <script type="text/javascript">
        //<![CDATA[
            MultiSelect = {
                oSelects: null,
                aOptions: null,
                fCallback: null,

                /**
                 * initiate MulitSelect with <select name>
                 * @class MulitSelect
                 * @public
                 * @param string  <select name> schema
                 * @param array   option objects
                 * @param fn      event callback
                 */
                init: function(sArgName, aArgOptions, fArgCallback) {
                    if (typeof fArgCallback == "function") {
                        this.fCallback = fArgCallback;
                    } else {
                        this.fCallback = function() {};
                    }
                    this.oSelects = document.getElementsByName(sArgName + "[]");
                    this.aOptions = aArgOptions;
                    var oOption, oSelect = this.oSelects[0];
                    for (var i = 0; i < aArgOptions.length; ++i) {
                        oOption = aArgOptions[i];
                        oSelect.options[oSelect.options.length] = new Option(oOption.text, oOption.value, !!oOption.selected);
                    }
                    this.fCallback("onInit", [ this.oSelects ]);
                    oSelect.removeAttribute("disabled");
                },
                        
                /**
                 * @class MulitSelect
                 * @public
                 * @param HTMLNode  <select>
                 */
                changeOption: function(oArgSelect) {
                    var sSelValue, aTrace = [], aValues = [];
                    for (var i = 0; i < this.oSelects.length; ++i) {
                        sSelValue = this.oSelects[i].options[this.oSelects[i].selectedIndex].value;
                        if (!this._isValidValue(sSelValue)) {
                            break;
                        }
                        aTrace.push(sSelValue);
                        if (this.oSelects[i] == oArgSelect) {
                            break;
                        }
                    }
                    this.fCallback("onChange", [ this._resolveTrace(aTrace) ]);
                    this._setupOptions(aTrace, this.aOptions, 0);
        	    },
                    
        	    /**
                 * @class MulitSelect
                 * @private
                 */
                _isValidValue: function(sArgValue) {
                    return (sArgValue != "0");
                },

                /**
                 * cleaning, disabling, restoring and enabling of <select> <option>s
                 * @class MulitSelect
                 * @private
                 */
                _setupOptions: function(aArgTrace, oArgOptions, iArgDepth) {
                    if (aArgTrace.length > 0) {
                        // resolve value
                        var sValue = aArgTrace.shift();
                        for (var i = 0; i < oArgOptions.length; ++i) {
                            if (oArgOptions[i].value == sValue) {
                                this._setupOptions(aArgTrace, oArgOptions[i].options, iArgDepth + 1);
                                break;
                            }
                        }
                    } else {
                        for (var i = iArgDepth; i < this.oSelects.length; ++i) {
                            // loop relevant <select>s
                            for (var k = this.oSelects[i].options.length - 1; k >= 0; --k) {
                                // loop in reverse to prevent loop break after deleting <option> elements
                                if (this._isValidValue(this.oSelects[i].options[k].value)) {
                                    // delete <option>
                                    this.oSelects[i].options[k] = null;
                                }
                            }
                            if (i != iArgDepth) {
                                this.oSelects[i].setAttribute("disabled", "disabled");
                            }
                        }
                        if (iArgDepth < this.oSelects.length && oArgOptions != null) {
                            // new <select> available
                            var oSelect = this.oSelects[iArgDepth], oOption;
                            for (var i = 0; i < oArgOptions.length; ++i) {
                                oOption = oArgOptions[i];
                                oSelect.options[oSelect.options.length] = new Option(oOption.text, oOption.value);
                            }
                            oSelect.removeAttribute("disabled");
                        }
                    }
        	    },

        	    /**
                 * get option objects by given (selected) values
                 * @class MulitSelect
                 * @private
                 */
                _resolveTrace: function(aArgTrace) {
                    var oOption;
                    var aValues = [];
                    var aCache  = this.aOptions;
                    for (var i = 0; i < aArgTrace.length; ++i) {
                        // loop values
                        for (var k = 0; k < aCache.length; ++k) {
                            if (aArgTrace[i] == aCache[k].value) {
                                // walk into object, clone it (exclude option element)
                                oOption = {};
                                for (var sKey in aCache[k]) if (sKey !== "options") oOption[sKey] = aCache[k][sKey];
                                aCache  = aCache[k].options;
                                // object found
                                aValues.push(oOption);
                                break;
                            }
                        }
                    }
                    return aValues;
                }
            };

            // create example
            var aOptions = [
                { value: "A1", text: "A1", options: [
                    { value: "A1-B1", text: "B1", options: [
                        { value: "A1-B1-C1", text: "C1" },
                        { value: "A1-B1-C2", text: "C2" },
                        { value: "A1-B1-C3", text: "C3" }				
                    ] },
                    { value: "A1-B2", text: "B2", options: [
                        { value: "A1-B2-C1", text: "C1" },
                        { value: "A1-B2-C2", text: "C2" },
                        { value: "A1-B2-C3", text: "C3" }				
                    ] },                    
                    { value: "A1-B3", text: "B3", options: [
                        { value: "A1-B3-C1", text: "C1" },
                        { value: "A1-B3-C2", text: "C2" },
				{ value: "A1-B3-C3", text: "C3" }
                    ] }
                ] },
                { value: "A2", text: "A2", options: [                    
                    { value: "A2-B1", text: "B1", options: [
                        { value: "A2-B1-C1", text: "C1" },
				{ value: "A2-B1-C2", text: "C2" },
				{ value: "A2-B1-C3", text: "C3" }
                    ] },
			  { value: "A2-B2", text: "B2", options: [
                        { value: "A2-B2-C1", text: "C1" },
                        { value: "A2-B2-C2", text: "C2" },
                        { value: "A2-B2-C3", text: "C3" }				
                    ] },                    
                    { value: "A2-B3", text: "B3", options: [
                        { value: "A1-B3-C1", text: "C1" },
                        { value: "A1-B3-C2", text: "C2" },
				{ value: "A1-B3-C2", text: "C3" }
                    ] }
                ] },
                { value: "A3", text: "A3", options: [
			  { value: "A3-B1", text: "B1", options: [
				{ value: "A3-B1-C1", text: "C1" },
				{ value: "A3-B1-C2", text: "C2" },
				{ value: "A3-B1-C3", text: "C3" }
			] },
			  { value: "A3-B2", text: "B2", options: [
				{ value: "A3-B2-C1", text: "C1" },
				{ value: "A3-B2-C2", text: "C2" },
				{ value: "A3-B2-C3", text: "C3" }
			] },
			  { value: "A3-B3", text: "B3", options: [
				{ value: "A3-B3-C1", text: "C1" },
				{ value: "A3-B3-C2", text: "C2" },
				{ value: "A3-B3-C3", text: "C3" }

			] }
			] }
            ];

            // something like onDOMReady would be better
            window.onload = function() {
                MultiSelect.init("selectElement", aOptions, function(sArgEvent, aArgPayload) {
                    // this is our event callback
                    // let's print out some information
                    var oDom = document.getElementById("events");
                    oDom.innerHTML = sArgEvent + "<br />";
                    switch (sArgEvent) {
                        case "onChange":
                            for (var i = 0; i < aArgPayload[0].length; ++i) {
                                oDom.innerHTML += "" + i + ": " + aArgPayload[0][i].text + "<br />";
                            }

                            // and let's allow only triple-selections
                            document.getElementById("submitButton").disabled = (aArgPayload[0].length != 3);
                            break;
                    }
                });
            };
        //]]>
        </script>
    </head>
    <body>
        
        <form action="" method="post">
            <div>
                <select name="selectElement[]" onchange="MultiSelect.changeOption(this)" disabled="disabled">
                    <option value="0">- Auswahl -</option>
                </select>
                »
                <select name="selectElement[]" onchange="MultiSelect.changeOption(this)" disabled="disabled">
                    <option value="0">- Auswahl -</option>
                </select>
                »
                <select name="selectElement[]" onchange="MultiSelect.changeOption(this)" disabled="disabled">
                    <option value="0">- Auswahl -</option>
                </select>
                »
                <input type="submit" id="submitButton" value="Ergebnis" disabled="disabled" />
            </div>
        </form>
        <pre id="events"></pre>
    </body>
</html>
RichieG ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.03.2010, 16:18  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 392
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

In dem du JavaScript lernst und den Quellcode verstehst...
Andreas ist offline  
Alt 09.03.2010, 21:24  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Du musst doch nur die Werte, die in den Eingabefeldern ausgewählt sind selektieren.
SELFHTML: JavaScript / Objektreferenz / options
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 10.03.2010, 07:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Das sind weder Auswahlfenster (sondern Selects) noch verschachtelte solche (sondern voneinander abhängige/dynamisch erzeugte).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verschachtelte Objekte und Vererbung GELight PHP-Fortgeschrittene 1 11.12.2009 09:09
Datenbankabfrage und verschachtelte Arrays Das_Pfau PHP Tipps 2009 7 20.11.2009 18:51
Verschachtelte, dynamische Subselects Dubhead JavaScript, Ajax und mehr 4 14.11.2009 01:31
[Erledigt] Mehrdimensionales Array als verschachtelte Liste ausgeben mit foreach kristina PHP Tipps 2009 5 26.08.2009 14:27
Verschachtelte Includes FoXyLiOn PHP-Fortgeschrittene 3 12.02.2006 15:24
Verschachtelte Datenbankabfrage - wie fange ich an? PHP Tipps 2007 9 02.02.2006 11:09
verschachtelte schleife marcels PHP Tipps 2007 3 08.12.2005 18:00
Auswahlfenster erstellen! PHP Tipps 2005-2 4 22.09.2005 15:43
verschachtelte if faultier PHP Tipps 2005-2 9 24.08.2005 16:57
verschachtelte if-else anweisung!? PHP Tipps 2005-2 7 04.08.2005 11:53
2 verschachtelte while Schleifen. Großes Performanceproblem Datenbanken 3 30.05.2005 12:52
verschachtelte MySQL-Abfrage PHP Tipps 2005 3 04.05.2005 12:44
Änderung in Uploadskript -- Auswahlfenster PHP Tipps 2005 1 29.03.2005 01:13
[Erledigt] Verschachtelte Arrays ausgeben PHP-Fortgeschrittene 2 10.12.2004 11:29
2 verschachtelte Divlayer und der Firefox. Tutti HTML, Usability und Barrierefreiheit 2 26.07.2004 22:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verschachtelte auswahlfenster, javascript auswahlfenster, http://www.php.de/php-einsteiger/65500-verschachtelte-auswahlfenster.html, html auswahlfenster, auswahlfenster php, auswahlfenster javascript, html select verschachtelt, html auswahlfenster auswahl an php schicken, verschachtelte auswahl if, verschachtelte auswahl, ajax verschachtelte auswahl, html input verschachtelt, auswahlfenster html, verschachtelte selektion, php auswahl verschachtelt, geschachtelte if php anfänger, optionen php auswahl, html code für auswahl button verschachtelt, asuwahöfenster in php, html auswahlfenster verschachtelt

Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum