dynamische selectauswahl

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

  • dynamische selectauswahl

    Hallo

    ich habe folgendes Problem:

    ich habe hier ein Formular, wo die auswahl in dem ersten selectfeld, das darauffolgende beeinflußt, und das 2.te das dritte. Dies fuktioniert auch nur möchte ich halt, das diese auswahlen nach einem refresh(zb. F5 oder auch submit an sich selbst) erhalten oder selcted bleiben und ich nicht wieder die auswahlen neu treffen muß!

    Kann mir da jemand weiterhelfen?

    Code:
    <html>
    <head>
    <title></title>
    
    <script language="JavaScript" type="text/javascript">
    
    S = new Array();
    S["135"] = new Array();
    S["135"][0] = "4";
    S["135"][1] = "6";
    S["135"][2] = "8";
    
    S["250"] = new Array();
    S["250"][0] = "4";
    S["250"][1] = "6";
    
    
    F = new Array();
    F["4"] = new Array();
    F["4"][0] = "1";
    F["4"][1] = "2";
    F["4"][2] = "3";
    F["4"][3] = "4";
    
    F["6"] = new Array();
    F["6"][0] = "2";
    
    F["8"] = new Array();
    F["8"][0] = "1";
    F["8"][1] = "2";
    
    
    function updateS(objForm, PName)	{
    
    	if(S[PName] != null)	{
    		countS = S[PName].length;
    	} else {
    		countS = 0;
    	}
    
    	while (objForm.S.options.length > 0) {
    		objForm.S.options[(objForm.S.options.length - 1)] = null;
    	}
    
    	if(S[PName] != null) {
        var intro = "Bitte wählen!";
        var new0ption = new Option(intro, -1, false, true);
        objForm.S.options[0] = new0ption;
    
    		for (var i = 0; i < countS; i++) {
          SName = S[PName][i];
    			newOption = new Option(SName, SName, false, false);
          objForm.S.options[i+1] = newOption;
    		}
    		objForm.S.options.selectedIndex = 0; //f&uuml;r NS wichtig [kwu]
    	} else {
        var intro = "---";
        var new0ption = new Option(intro, -1, false, true);
        objForm.S.options[0] = new0ption;
      }
    }
    
    function updateF(objForm, SName)	{
    
    	if(F[SName] != null)	{
    		countF = F[SName].length;
    	} else {
    		countF = 0;
    	}
    
    	while (objForm.F.options.length > 0) {
    		objForm.F.options[(objForm.F.options.length - 1)] = null;
    	}
    
    	if(F[SName] != null) {
        var intro = "Bitte wählen!";
        var new0ption = new Option(intro, -1, false, true);
        objForm.F.options[0] = new0ption;
    
    		for (var i = 0; i < countF; i++) {
          FName = F[SName][i];
    			newOption = new Option(FName, FName, false, false);
          objForm.F.options[i+1] = newOption;
    		}
    		objForm.F.options.selectedIndex = 0; //f&uuml;r NS wichtig [kwu]
    	} else {
        var intro = "---";
        var new0ption = new Option(intro, -1, false, true);
        objForm.F.options[0] = new0ption;
      }
    }
    
    </script>
    </head>
    
    <body>
    
    <form name="twoCombos">
    <select name="P" onchange="updateS(this.form, this.options[this.selectedIndex].value);">
    <option value="">Bitte wählen!</option>
    <option value="135"<? if($berechnen) { if($P=="135") {echo "selected=\"on\"";} }?>>135</option>
    <option value="250"<? if($berechnen) { if($P=="250") {echo "selected=\"on\"";} }?>>250</option>
    </select>
    <br><br>
    <select name="S" onchange="updateF(this.form, this.options[this.selectedIndex].value);">
    <script language="JavaScript" type="text/javascript">
      document.write("<option>---</option>");
      for (var i=0; i < S.length; i++)	{
      	document.write("<option value=\""+S[i]+"\">"+S[i]+"</option>");
      }
    </script>
    </select>
    <br><br>
    <select name="F" onchange="showSelection(this)">
      <option value="0">---</option>
    </select>
    </form>
    
    </body>
    </html>

  • #2
    Re: dynamische selectauswahl

    Original geschrieben von oberlusche
    Dies fuktioniert auch nur möchte ich halt, das diese auswahlen nach einem refresh(zb. F5 oder auch submit an sich selbst) erhalten oder selcted bleiben und ich nicht wieder die auswahlen neu treffen muß!
    Dann musst du deinem Javascript, welches die Options ausgibt, auch mitteilen, welche Option die gewählte ist - und diese (vor)selektieren lassen.

    Wenn du das Formular an sich selbst sendest (PHP-Script), kannst du darin entsprechenden JS-Code ausgeben lassen.
    Wenn du die Daten auch über einen Reload hinaus erhalten willst, müsstest du dir per Javascript die aktuell selektierten Optionen in einem Cookie merken, und beim Aufbauen der Liste auch von dort wieder auslesen. Außerdem natürlich Priorisierung von POST- vs. Cookie-Daten berücksichtigen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ist ja schon mal toll das dazu jemand ne idee hat wie das geht.

      Nur hab ich dazu momentan noch gar keinen plan, wie ich so was mache.
      Hast Du da noch nen paar tiefgreifendere tips, da ich mich mom in prog noch so einschätze, wie ich mich genannt habe. Also nen absoluter frischling, der sich an den ersten kleinen js und php anwendungen versucht.

      Kommentar


      • #4
        Original geschrieben von oberlusche
        Hast Du da noch nen paar tiefgreifendere tips
        Keine außer:

        Schnapp dir das PHP-Manual und eine Javascript-Doku (wie bspw. die von selfhtml), arbeite dich in die Grundlagen ein - und leg' los.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X