auf assoziative Arrays zugreifen

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

  • auf assoziative Arrays zugreifen

    Ich habe gerade auf SELFHTML

    assoziative Arrays

    gesehen wie man assoziative Arrays anlegt, nur hab ich ein Problem veim wieder zugreifen darauf. Die machen das da mit einer for schleife, ich möchte aber gerne gezielt auf die Felder zugreifen.

    PHP-Code:
    var shop1=new Array();
    shop1[0] = new Array();
    shop1[21082003][mobil] = 34;
    shop1[21082003][fest] = 35;
    shop1[21082003][dsl]= 53
    ok, dazu noch ne funktion, die sich den array zunutze machen soll um eingabefelder damit zu füttern.

    PHP-Code:
    function fuellen()
    {
    if (
    document.eingabe.auswahl.value == "shop1")
      {
    var 
    d=document.eingabe.datum.value;
    document.eingabe.mobil.value shop1[d][mobil];
    document.eingabe.fest.value shop1[d][fest];
    document.eingabe.dsl.value shop1[d][dsl];
      }

    so funzt es schonmal nicht, nur wie mache ich es dann?

  • #2
    Re: auf assoziative Arrays zugreifen

    shop1[21082003][mobil] = 34;

    ist falsch. wie du auf der selfhtml-seite siehst, würde mobil hier in anführungszeichen gehören, also

    shop1[21082003]["mobil"] = 34;



    document.eingabe.mobil.value = shop1[d][mobil];
    document.eingabe.fest.value = shop1[d][fest];
    document.eingabe.dsl.value = shop1[d][dsl];

    und welchen wert hat d hier?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      z.B 21082003

      das ist der wert, der aus der select-box kommt

      Kommentar


      • #4
        mhh, das war ja schon ganz hilfreich aber irgendwie macht das ganze immernoch ärger.

        PHP-Code:
         <script language="javascript">
        shop1=new Array();
        shop1[01092003] = new Array();
        shop1[01092003]["mobil"] = 32;
        shop1[01092003]["fest"] = 54;
        shop1[01092003]["dsl"]= 34;
        shop1[21082003] = new Array();
        shop1[21082003]["mobil"] = 43;
        shop1[21082003]["fest"] = 34;
        shop1[21082003]["dsl"]= 34;
        shop1[20082003] = new Array();
        shop1[20082003]["mobil"] = 45;
        shop1[20082003]["fest"] = 64;
        shop1[20082003]["dsl"]= 3;
        shop1[19082003] = new Array();
        shop1[19082003]["mobil"] = 26;
        shop1[19082003]["fest"] = 15;
        shop1[19082003]["dsl"]= 14;
        shop1[18082003] = new Array();
        shop1[18082003]["mobil"] = 15;
        shop1[18082003]["fest"] = 20;
        shop1[18082003]["dsl"]= 13;
        function 
        fuellen()
        {
        if (
        document.eingabe.auswahl.value == "shop1")
          {
        var 
        d=document.eingabe.datum.value;
        document.eingabe.mobil.value shop1[d][mobil]; #<---#
        document.eingabe.fest.value shop1[d][fest];
        document.eingabe.dsl.value shop1[d][dsl];
          }
        }
        </
        script
        so schaut das dann aus. nur sagt er dauernd (z.b. im IE) dort wo der Pfeil ist "mobil ist undefiniert"

        ich habe auch schon versucht an dieser stelle
        PHP-Code:
        document.eingabe.mobil.value shop1[d]["mobil"]; 
        zu schreiben, also in"" aber dann bekomme ich den Fehler " 'shop1[...].mobil' ist null oder kein objekt"

        was kann ich denn dagegen tun?
        und was soll an dem script denn falsch sein? hab wieder irgendetwas übersehen?

        Kommentar


        • #5
          also mobil und co müssen definitiv in "" ansonsten erwartet javascript,
          dass du mit 'var mobil = "x";' eine variable anlegst.

          1. gib mal mit alert(d) den wert aus, ob überhaupt etwas ankommt.
          2. würde ich auch die datumswerte in "" setzen, denn wie du hier siehst:
          Code:
          <script type="text/javascript">
          //<!--
          var d=012345;
          alert(d);
          var d=12345;
          alert(d);
          //-->
          </script>
          ...kann eine "0" ganz schön nerven


          Code:
          <script language="javascript">
          
          shop1=new Array();
          shop1["18082003"] = new Array();
          shop1["18082003"]["mobil"] = 15;
          var d="18082003";
          alert(shop1[d]["mobil"]); 
          
          </script>
          sollte klappen.
          Kissolino.com

          Kommentar


          • #6
            wahhoo, DANKE !!!

            Die Datumswerte mussten tatsächlich auch in "". ich hab zwar keine ahnung wieso das bei selfhtml ohne klappt aber hier hats geholfen.

            also jetzt nochmal das funktionierende script. Falls jemand mal die Forensuche benutz wird er hier wenigstens fündig.

            PHP-Code:
             <script language="javascript">
            var 
            shop1=new Array();
            shop1["01092003"] = new Array();
            shop1["01092003"][0] = 32;
            shop1["01092003"][1] = 54;
            shop1["01092003"][2]= 34;
            shop1["21082003"] = new Array();
            shop1["21082003"][0] = 43;
            shop1["21082003"][1] = 34;
            shop1["21082003"][2]= 34;
            shop1["20082003"] = new Array();
            shop1["20082003"][0] = 45;
            shop1["20082003"][1] = 64;
            shop1["20082003"][2]= 3;
            shop1["19082003"] = new Array();
            shop1["19082003"][0] = 26;
            shop1["19082003"][1] = 15;
            shop1["19082003"][2]= 14;
            shop1["18082003"] = new Array();
            shop1["18082003"][0] = 15;
            shop1["18082003"][1] = 20;
            shop1["18082003"][2]= 13;
            function 
            fuellen()
            {
            if (
            document.eingabe.auswahl.value == "shop1")
              {
            var 
            d=document.eingabe.datum.value;
            document.eingabe.mobil.value shop1[d][0];
            document.eingabe.fest.value shop1[d][1];
            document.eingabe.dsl.value shop1[d][2];
              }
            }
            </
            script

            Kommentar

            Lädt...
            X