input-Felder ueberpruefen

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

  • input-Felder ueberpruefen

    hallo,

    ich erstelle mittels einer MySQL-Abfrage ein Formular. Hier geht es insbesondere um das Einfuegen, Loeschen und Aendern meiner Datenbanktabellen.

    Es gibt fuer alle Tabellen sozusagen nur diese drei Funktionen.
    Die Namen meiner Input-Felder entsprechen die der meiner Spaltennamen.
    ´
    Läuft soweit alles prima.

    So jetzt möchte ich diese Input-Felder überprüfen.
    Ich hab jetzt also in meiner javascript-Datei ganz normal nach den Spaltennamen gefragt:

    if (document.showdata.Projektbezeichnung.value == "")
    {
    alert("Projektbezeichnung eingeben!");
    document.showdata.Projektbezeichnung.focus();
    return false;
    }
    if (document.showdata.Release.value == "")
    {
    alert("Release eingeben!");
    document.showdata.Release.focus();
    return false;
    }

    Aufgerufen wird meine Funktion. Aber es kommt keine Alert-Box!!
    schnief

    Kann es sein, dass es wegen der Variablen nicht funzt (weil die Spaltennamen in Variablen stehen)???

    Hat jemand eine Idee?


    thx. pseo

  • #2
    hy,

    hier nur zum besseren Verständnis die Erstellung meines Formulars:

    ....

    echo "<tr><th>$zeile[0]</th><td><input type=\"text\" ";
    echo "name=\"test[$zeile[0]]\"></td></tr>";

    $zeile[0] entspricht dem Spaltennamen.

    pseo

    Kommentar


    • #3
      Hast Du Dir mal den Quellcode der erstellten HTML-Seite angesehen?
      Stimmen die Namen der erzeugten input-Felder mit denen in der Funktion überein?

      cu tj99de
      Of all things I've lost
      I miss my mind the most

      Kommentar


      • #4
        hy,

        ja, dass Problem ist, dass im Namen folgendes drinnensteht:

        name=test[Projektbezeichnung]

        schnief

        Ich hab schon so in meinem javascript abgefragt:

        if(document.showdata.test[Projektbezeichnung].value == "")
        {
        ...
        }

        Aber damit komm ich auch nicht weiter.


        pseo

        Kommentar


        • #5
          kann es sein, dass hier doppelte anführungszeichen hin müssen?

          echo "name=\"". test[$zeile[0]]." \"></td></tr>";


          denn das anführungszeichen ohne backslash davor muss ja erstmal den bei
          "name=
          begonnenen string wieder schliessen, bevor du eine variable ausgeben kannst.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            hy wahsaga:-)

            echo "name=\"". test[$zeile[0]]." \"></td></tr>";

            ????

            Von der Funktionalität her is alles ok.

            Das was ich meinte, ist der bereits generierte Quellcode und sollte so ok sein:

            name=test[Projektbezeichnung]

            Ich werte ich meinem nächsten Script das ganze so aus:

            function DataInsert($wert, $verbindung)
            {
            global $test;
            $i=0;

            $sql="INSERT INTO $wert VALUES ";

            foreach(array_keys($test) as $key)
            {
            if($i==0)
            {
            $sql.="(\"$test[$key]\"";
            }
            else
            {
            $sql.="\", $test[$key]\"";
            }
            $i++;
            }
            $sql.=")";

            mysql_query($sql, $verbindung) or die (mysql_error());

            }

            In den Namen der Input-Felder ist blöderweise das
            temp[.......] enthalten. Das temp brauche ich aber wiederum für das php-Script. Das versteht aber Javascript nicht.

            So müsste sozusagen meine Javascript-Abfrage aussehen:

            if (document.showdata.temp[Projektbezeichnung].value == "")
            {
            alert("Projektbezeichnung eingeben!");
            return false;
            }


            Hast Du eine Idee???


            pseo

            Kommentar


            • #7
              probiers doch mal mit

              alert(document.showdata.Projektbezeichnung.value );

              dann zeigt er es ja an ob es findet oder nicht .

              so sollte das javascript aussehen

              myform = name der form
              myinput = name der input in der form

              if(myform.myinput.value=="")
              {
              alert("nix gut");
              }

              Kommentar


              • #8
                hy,

                wenn Du meine vorangegangenen Beiträge gelesen hättest,
                dann wüsstest Du, dass die von Dir vorgeschlagene Abfrage
                nicht funktioniert.

                showdata -> Name meines Formulars
                temp[Projektbezeichnung] - name meines Inputfeldes

                also kann ich nicht so abfragen:

                if (document.showdata.Projektbezeichnung.value == "")
                ...

                weil es Projektbezeichnung hier nicht gibt.

                Du verstehst?! ;-)

                Das ganze kommt nur, weil ich nicht für jede Tabelle immer die gleichen Funktionen schreiben oder bessergesagt kopieren wollte.

                pseo

                Kommentar


                • #9
                  Hi pseo,

                  was funktionieren sollte, aber zur Zeit wohl nur ein Workaround ist, ist das input über seine id anzusprechen. Setze in php eine id, die z.B.: nur Projektbezeichnung enthält.

                  PHP-Code:
                  echo " id=\"$zeile[0]\" name=\"test[$zeile[0]]\"></td></tr>"
                  Im JavaScript-Teil sieht's dann so aus :

                  PHP-Code:
                  var projekt document.getElementById('Projektbezeichnung');

                  if (
                  projekt.value == "" || projekt.value=" ") {
                    
                  alert("Projektbezeichnung eingeben!");
                    
                  projekt.focus();
                    return 
                  false;

                  Das sollte das Problem erstmal lösen.

                  Grüße, Marcus.

                  Kommentar


                  • #10
                    hy,

                    cool - das klingt, als müsst es klappen.
                    Ich probiers dann gleich aus und meld mich.

                    thx. pseo

                    Kommentar

                    Lädt...
                    X