prüfen ob eine Element in einem Array vorkommt

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

  • prüfen ob eine Element in einem Array vorkommt

    Hallo,
    ich möchte gerne prüfen ob ein Element in einem Array vorkommt. Es sollt dann einen bool - Wert ausgegeben werden. Wie mache ich das?

  • #2

    Kommentar


    • #3
      vielleicht hilft dir auch das hier weiter

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        vielen dank bin weitergekommen

        leider funzt aber eine mehrfache abfrage nicht - siehe Script - Woran kann das liegen?

        PHP-Code:

        <script type="text/javascript">
           function 
        in_array(a,p){
                          for (
        i=0;i<a.length;i++)
                          if (
        a[i] == p)
                          return 
        false
                          
        }
                          
            function 
        in_array_2(a,p){
                          for (
        i=0;i<a.length;i++)
                          if (
        a[i] == p)
                          return 
        false
                          
        }
              function 
        valid_form_test(f)
              { 
              var 
        test_1 = new Array();
              
        test_1[0] = "eins";
              
        test_1[1] = "zwei";
              
        test_1[2] = "drei"
              
              var 
        test_2 = new Array();
              
        test_2[0] = "vier";
              
        test_2[1] = "fuenf";
              
        test_2[2] = "sechs"
                                 
              return 
        in_array(test_1,f.upload.value);
              
              return 
        in_array_2(test_2,f.upload_2.value);
              
          
                          return 
        true
                                     
        }
                                     </
        script>
           <
        form actions="#" method="POST" onSubmit="return valid_form_test(this);">
           <
        input type="text" name="upload"><br><input type="text" name="upload_2"><br>
           <
        input type="submit"></form

        Kommentar


        • #5
          WAS funzt nicht?
          Zum 100. mal, "funzt nicht" ist keine Problembeschreibung!

          Warum gibt deine Funktion eigentlich kein true zurück? Wäre die saubere Implementierung. Dann natürlich noch die entsprechende Verwendung der Funktion umsetzen.
          Zuletzt geändert von TobiaZ; 21.03.2009, 16:44.

          Kommentar


          • #6
            was funzt nicht

            es wird eben keine Fehlermeldung ausgegeben.
            Das die Funktion nur false zurückgibt ist gewollt. Denn dann wird eben nicht abgeschickt. Das Problem ist, dass ich im zweiten Feld bspsweise vier eingebe und dann das Formular trotzdem abgeschickt wird. Es sollte aber das Abschicken verhindern

            Kommentar


            • #7
              das problem ist genau...

              Das die Funktion im falle der Wert nicht im Array ist wohl true zurückgibt

              wie kann ich das verhindern?

              Kommentar


              • #8
                das problem ist genau das die Funktion im falle der Wert nicht im Array ist wohl true zurückgibt
                Das ist kein Deutsch! Gib dir bitte für 5 Cent Mühe und mach es uns nicht schwieriger als es sein muss.

                BTW: Warum definierst du die Prüffunktion überhaupt zwei mal?

                Kommentar


                • #9
                  ok entschuldige bitte

                  Also

                  PHP-Code:
                                 function in_array(a,p){
                                    for (
                  i=0;i<a.length;i++)
                                    if (
                  a[i] == p)
                                    return 
                  false
                                    

                  gibt im Falle der Wert p nicht im Array ist true zurück. Das aber führt dazu, dass die Prüfung der Eingabewerte den POST freigibt. Das muss verhindert werden.

                  Gibt es da eine möglichkeit zu prüfen, was die Funktion als Ausgabe herausgibt?

                  Kommentar


                  • #10
                    geschafft

                    PHP-Code:
                     <script type="text/javascript">
                       function 
                    in_array(a,p){
                                      for (
                    i=0;i<a.length;i++)
                                      if (
                    a[i] == p)
                                      return 
                    false
                                      
                    }
                                      
                        function 
                    in_array_2(a,p){
                                      for (
                    i=0;i<a.length;i++)
                                      if (
                    a[i] == p)
                                      return 
                    false
                                      
                    }
                          function 
                    valid_form_test(f)
                          { 
                          var 
                    test_1 = new Array();
                          
                    test_1[0] = "eins";
                          
                    test_1[1] = "zwei";
                          
                    test_1[2] = "drei"
                          
                          var 
                    test_2 = new Array();
                          
                    test_2[0] = "vier";
                          
                    test_2[1] = "fuenf";
                          
                    test_2[2] = "sechs"
                                             
                          
                          
                          if(
                    in_array(test_1,f.upload.value) === false)
                           {
                            return 
                    false
                           
                    }
                          if(
                    in_array_2(test_2,f.upload_2.value) === false)
                           {
                            return 
                    false
                           
                    }
                      
                                      return 
                    true
                                                 
                    }
                                                 </
                    script>
                         <
                    form actions="#" method="POST" onSubmit="return valid_form_test(this);">
                       <
                    input type="text" name="upload"><br><input type="text" name="upload_2"><br>
                       <
                    input type="submit"></form

                    Kommentar


                    • #11
                      Re: was funzt nicht

                      Original geschrieben von sanktusm
                      Das Problem ist, dass ich im zweiten Feld bspsweise vier eingebe und dann das Formular trotzdem abgeschickt wird.
                      Natürlich - schliesslich hast du die Funktion schon vor dieser Prüfung mittels return verlassen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar

                      Lädt...
                      X