If-Abfrage funktioniert beim array nicht

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

  • If-Abfrage funktioniert beim array nicht

    Hi
    Also folgender Code:

    PHP-Code:
    for (var 0a.length; ++i)
                              {
                                
    alert (a[i]);
                                if (
    form.code.value == a[i])
                                {
                                  
    alert ("jo");
                                }
                              } 

    (^^ habe das als php gemacht damit man da besser lesen kann. es ist aber natürlich javascript )

    Also "a" ist ein Array mit zwei werten: 0=20501 und 1=50201... Was er macht: Er soll ja die for schleife so ost durchführen, wie "a" lang ist, also 2 mal, das macht er auch, hab ich überprüft. so, die varibale "i" steigt jedes mal im den wert 1.
    dadrurch wird beim ersten durchgang die form.code.value (wert 20501) mit dem array a[0] verglichen. das stimmt dann auch, da ja a[0] = 20501ist. also er zeigt in einem neuem fenster "jo". soweit so gut. jetzt weise ich der form.code.value den wert 50201 zu.
    ok, erster durchang kann nicht richtig sein, da a[0] ja 20501 ist. aber jetzt kommt der zweitze durchgang: a[i] ist ja jetzt a[1]. a[1] hat den wert 502010. so, jetzt vergleicht er also die werte 50201 mit 50201. das stimmt ja auch, also sollte er jetzt "jo" schreiben. macht er aber nicht!!!
    warum denn nicht? das gibts doch nicht, bin ich jetzt völlig blöde?? so ein schwachsinn.
    hoffe, dass einer von euch ne lösung hat. das wär echt super

    Greets. mp17

  • #2
    Re: If-Abfrage funktioniert beim array nicht

    Original geschrieben von mp17

    (^^ habe das als php gemacht damit man da besser lesen kann. es ist aber natürlich javascript )
    Dir ist klar dass es hier ein subforum gibt das sich mit jscript beschäftigt ?
    Heisser Tip: es ist nicht das in dem du dein topic gestartet hast.

    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar


    • #3
      Re: Re: If-Abfrage funktioniert beim array nicht

      Original geschrieben von closure
      Heisser Tip: es ist nicht das in dem du dein topic gestartet hast.
      sonders das wohin ich dich nun verschoben habe .... *move*
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        jo sry, hab ich völlig verrafft... gibs auch lösungsvorschlage? *g*

        Kommentar


        • #5
          Wie sieht dein Array a genau aus. Schreib das doch mal bitte hier hin. Dann sehen wir mal weiter..

          Kommentar


          • #6
            also for der if abfrage gibt er ja immer noch ein alert von a aus. beim ersten mal schreib er 20501 also i ist da 0 und beim zweiten mal 50201 weil i = 1. oder was wolltest du genau wissen?
            achja, was ich auch noch gemacht habe:

            PHP-Code:
            for (var 0a.length; ++i)
                                      {
                                        
            ver1 a[i];
                                        
            ver2 form.code.value;
                                        
            alert (ver1);
                                        
            alert (ver2);
                                        if (
            ver1 == ver2)
                                        {
                                          
            alert ("jo");
                                        }
                                      } 
            hier vergleicht er dann ver1 mit ver2. klappt auch nicht. vorher werden die beiden var per alert ausgegeben also ver1 und ver2 und beim zweiten durchgang schreibt er: 50201 und 50201. also ver1=50201 und ver2=50201. jetzt sollte er die ja vergleichen, aber klappt wieder nicht, kein "jo". das is doch ma vol komisch oder?

            Kommentar


            • #7
              Nö, da ist nichts komisches. Komisch ist ja nur, dass du keine Ahnung hast, wasfür Datentyp die Value-Properties immer zurückliefern, nämlich immer String; und man kann bekanntlich String mit Zahlen ohne explizite Konvertierung in die eine oder andere Richtung schlecht vergleichen.

              Kommentar


              • #8
                Original geschrieben von mp17
                oder was wolltest du genau wissen?
                Irgendwie musst du doch dein Array mit Daten befüllen. Den Part wollte ich sehen, weil ich den selben Verdacht hatte wie asp2php. Entweder du baust dein Array wie folgt auf:
                Code:
                var a = ["20501", "50201"];
                Oder aber du vergleichst in deiner Schleife den Wert aus dem Input mit einem parseInt..
                Code:
                if ( parseInt(deinfeld) == wertausdeinemarray )..
                Ersteres wäre die klügere Lösung..

                Kommentar


                • #9
                  hi. hier ma den ganzen code (also nen paar unrelevante sachen hab ich rausgenommen)

                  PHP-Code:
                  function registerForm($option, $useractivation) {
                          ?>
                                  <?php
                                    $count 
                  0;
                                    
                  $sql "SELECT
                                              Code,
                                              Free
                                              FROM
                                              jos_reg_cdcode"
                  ;
                                    
                  $result mysql_query($sql) OR die(mysql_error());
                                    if(
                  mysql_num_rows($result)) 
                                    {
                                       while(
                  $row mysql_fetch_assoc($result)) 
                                       {
                                              
                  $code[$count] = $row['Code'];
                                              
                  $count $count+1;
                                       }

                                       
                  $size sizeof($code);
                                       
                  $code2 $code[0];
                                       for(
                  $i=1$i<$size$i++)
                                       {
                                         
                  $code2 $code2.", ".$code[$i];
                                       }
                                    }
                  so, hier wurde nur aus der datenbank die daten geladen und das array umgewndelt...und so gehts dann weiter:

                  PHP-Code:
                  <script language="javascript" type="text/javascript">
                          function submitbutton() {
                              var form = document.mosForm;
                              var r = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]", "i");
                              var code = "<?php echo $code?>";
                              var al = "0";
                              var ver1;
                              var ver2;
                              
                              temp = "<?php echo $code2;?>";
                                          var a = temp.split(",");
                  ^^so ist das array a enstanden^^

                  Kommentar


                  • #10
                    Original geschrieben von mp17
                    ^^so ist das array a enstanden^^
                    Ja, feine Bienchen-und-Blümchen-Geschichte.

                    Wie es jetzt letztendlich aussieht, wissen wir aber immer noch nicht.

                    Wenn du ein clientseitiges Problem diskutieren willst, dann poste bitte den Code auch so, wie ihn der Client erhält. Serverseitiger Code interessiert dabei erst mal kein bisschen.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      was? wie krieg ich denn den clientseitigen code?

                      Kommentar


                      • #12

                        Quelltext anzeigen lassen?


                        (Oder, falls du es in eine externe JS-Datei ausgelagert hast, diese einzeln anfordern.)
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          ja was bringt das? steht doch genau das selber drinne:
                          //edit: ahhne doch nicht, sry
                          PHP-Code:
                          <script language="javascript" type="text/javascript">
                                  function 
                          submitbutton() {
                                      var 
                          form document.mosForm;
                                      var 
                          = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]""i");
                                      var 
                          code "Array";
                                      var 
                          al "0";
                                      var 
                          test;
                                      
                                      
                          temp "20501, 50201";
                                                  var 
                          temp.split(",");
                                                  
                          //alert(a);

                                      // do field validation
                                  /*    if (form.name.value == "") {
                                          alert( "Bitte deinen Namen eingeben." );
                                      } else if (form.username.value == "") {
                                          alert( "Bitte einen Benutzernamen eingeben." );
                                      } else if (r.exec(form.username.value) || form.username.value.length < 3) {
                                          alert( "Benutzername: ist nicht zulässig. Bitte keine Leerzeichen, mindestens 2 Stellen, 0-9,a-z,A-Z sollte enthalten sein." );
                                      } else if (form.email.value == "") {
                                          alert( "Bitte deine E-Mail Adresse eingeben." );
                                      } else if (form.password.value.length < 6) {
                                          alert( "Bitte ein gültiges Passwort eingeben.  Mindestens 6 Stellen, keine Leerzeichen, möglich sind 0-9,a-z,A-Z" );
                                      } else if (form.password2.value == "") {
                                          alert( "Bitte Passwort wiederholen." );
                                      } else if ((form.password.value != "") && (form.password.value != form.password2.value)){
                                          alert( "Passwort und Wiederholung stimmen nicht überein, bitte versuche es noch einmal." );
                                      } else if (r.exec(form.password.value)) {
                                          alert( "Passwort: ist nicht zulässig. Bitte keine Leerzeichen, mindestens 6 Stellen, 0-9,a-z,A-Z sollte enthalten sein." );
                                      } else 
                                                  {               */
                                                    
                          for (var 0a.length; ++i)
                                                    {
                                                      
                          alert (a[i]);
                                                      if (
                          form.code.value == a[i])
                                                      {
                                                        
                          alert ("jo");
                                                      }
                                                    }
                                                   
                                  
                          //    }
                                  
                          }
                                  </
                          script

                          Kommentar


                          • #14
                            Original geschrieben von mp17
                            ja was bringt das? steht doch genau das selber drinne:
                            again

                            Erst jetzt können wir zweifelsfrei beurteilen, wie dein "Array" wirklich aussieht - weil wir jetzt genau wissen, was dein PHP-Code ausgegeben hat.
                            Niemand hat Lust, in so einem Fall rumzuraten - und selbst wenn wir die Funktionsweise deines PHP-Codes nachvollziehen würden, wäre ja noch lange nicht gesagt, dass darin - oder in den Daten - nicht noch weitere Fehler stecken könnten, so dass das Ergebnis nicht dem erwarteten entspräche.

                            PHP-Code:
                            temp "20501, 50201";
                            var 
                            temp.split(",");
                            alert("Wert 1: #"+a[0]+"#");
                            alert("Wert 2: #"+a[1]+"#"); 
                            So, jetzt sollte dir aber was auffallen.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Original geschrieben von mp17

                              //edit: ahhne doch nicht, sry
                              [
                              -------------------------------------------------

                              du bist ja echt der hammer, danke alter also liegt es am leerzeichen vor dem 50201. super danke dir hammer!! *freu*
                              merci beacoup

                              Greets. mp17

                              Kommentar

                              Lädt...
                              X