Funktion wird überschrieben, wie anders Lösen?

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

  • Funktion wird überschrieben, wie anders Lösen?

    Ich hab ein kleines Problem mit ne kleinen Funktion. Wenn ich die PHP Funktion "formTail" mit zwei parametern aufrufe z.B. so "formTail(array("callername","callernumber","dring"),array("to"))" dann überschreibt mir ja die PFLICHFELDERÜBERPRÜFUNG meine EMAILÜBERPRÜFUNG, wie stell ich dass den an, dass das nicht der Fall ist!

    Könnt ihr mir da weiterhelfen?

    danke
    Mfg
    Michael

    PHP-Code:
     function formTail($checkfields "",$checkmailfields ""){

    $html.="<script type=\"text/javascript\" >

                function EMail(s)
                {
                  var a = false;
                  var res = false;
                  if(s == '')
                  {
                    return(true);
                  }
                  if(typeof(RegExp) == 'function')
                  {
                    var b = new RegExp('abc');
                    if(b.test('abc') == true){a = true;}
                  }

                  if(a == true)
                  {
                    reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                                     '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                                     '(\\.)([a-zA-Z]{2,4})$');
                    res = (reg.test(s));
                  }
                  else
                  {
                    res = (s.search('@') >= 1 &&
                           s.lastIndexOf('.') > s.search('@') &&
                           s.lastIndexOf('.') >= s.length-5)
                  }
                  return(res);
                }"
    ;
          
    // EMAILÜBERPRÜFUNG
          
    if ($checkmailfields == "")
          {
            
    $html .= "
                      function my_sendfunction()
                      {
                        document.forms.myform.submit();
                      }
                    "
    ;
          }
          else
          {
            
    $html .= "
                      function my_sendfunction()
                      {
                        if (\n"
    ;
                        
                        for(
    $i=0;$i<count($checkmailfields);$i++)
                        {
                          
    $html.="    EMail(document.myform." $checkmailfields[$i] . ".value) == false\n";
                          if(
    $i count($checkmailfields) -1)
                          {
                            
    $html.=" ||\n";
                          }
                        }

            
    $html.="
                    )
                      {
                        alert('Mindestens eine angegebene E-Mail Adresse ist nicht korrekt!');
                      }
                      else
                      {
                        document.forms.myform.submit();
                      }
                    }"
    ;

          }
          
    //PFLICHFELDERÜBERPRÜFUNG
          
    if ($checkfields == "")
          {
            
    $html .= "
                      function my_sendfunction()
                      {
                        document.forms.myform.submit();
                      }
                    "
    ;
          }
          else
          {
            
    $html .= "
                      function my_sendfunction()
                      {
                        if (\n"
    ;
                        
                        for(
    $i=0;$i<count($checkfields);$i++)
                        {
                          
    $html.=" (document.myform." $checkfields[$i] . ".value == '')\n";
                          if(
    $i count($checkfields) -1)
                          {
                            
    $html.=" ||\n";

                          }
                        }

            
    $html.="
                    )
                      {
                        alert('Mindestens ein Pflichtfeld wurde nicht angegeben!');
                      }
                      else
                      {
                        document.forms.myform.submit();
                      }
                    }"
    ;

          }

        
    $html.="</script>";


  • #2
    mal eine ganz dumme frage. warum willst du die formularüberprüfung mit javascript machen, generierst den js-code aber per php? entweder per php überprüfen oder per javascript.

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

    Kommentar


    • #3
      Weil ich es so am besten Einbinden kann! JavaSkript deshabl, weil die Übprüfung sofort stattfinden soll ohne etwas abzuschicken!

      MfG
      Mike

      Kommentar


      • #4
        Original geschrieben von Morpheus2100
        Weil ich es so am besten Einbinden kann!
        Ach, echt?

        Und ich hatte schon angenommen, du hättest hier einen Thread eröffnet, eben weil es Probleme macht ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Weil ich es so am besten Einbinden kann! JavaSkript deshabl, weil die Übprüfung sofort stattfinden soll ohne etwas abzuschicken!
          du weist aber schon, dass das völlig sinnfrei ist, oder? und warum wird die funktion function EMail(s) durch function my_sendfunction() überschrieben? wo bitte ruft du denn die funktionen auf? schon mal auf die idee gekommen, die funktion für die mailüberprüfung in der pflichtfeldfunktion aufzurufen?

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

          Kommentar


          • #6
            Also Parameter 1 = Pflichtfelder!
            Parameter 2 = Emailfelder!

            Und wenn ich zugleich parameter 1 und 2 angebe, wie oben beschrieben, überschreibt es dann nicht die "function my_sendfunction" ??? ich denke schoN!

            MFG
            MIKE

            Kommentar


            • #7
              ich weiss ehrlich garnicht was du meinst.
              PHP-Code:
              // Pseudo-code
              ffelder = new Array ('feld_1','feld_2',...,'email');

              function 
              checkFields (felder)
              {
                 for(
              0felder.length;i++)
                 {
                      if (
              felder[i].length == 0)
                      {
                          
              //hinweis
                      
              }
                      else if (
              felder[i] == 'email')
                      {
                          
              mailcheck checkMail (document.myform.email.value);
                          if (!
              mailcheck)
                          {
                              
              // irgendwas
                          
              }
                      }
                 }
              }

              function 
              checkMail (mail)
              {
                  if (...)
                  {
                      
              // keine Mail
                      
              return false;
                  }

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

              Kommentar


              • #8
                nene er meint er überschreibt seine js-funktion, da er nur fähig ist eine einzige funktion aufzurufen die dann entweder oder prüfen soll jenachdem welcher parameter übergeben wurde. (was natürlich nicht funktioniert wenn beide übergeben werden...)
                insgesammt großer unfug..
                warum arbeitest du nicht mit zwei funktionen oder machst unterscheidungen innerhalb einer funktionen

                und: warum zum teufel willst du das so mit php machen?
                Die Milch bleibt ranzig!

                Kommentar

                Lädt...
                X