Formular Value Tausch Problem

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

  • Formular Value Tausch Problem

    Hey!
    Vom Prinzip her, möchte ich einfach ein Feld haben, in dem ein Name steht. Diesen Namen möchte ich mit zwei Grafiken austauschen. Insgesamt habe ich 3 Namen (Hans, Fritz und Willi)... wenn ich auf die "up-grafik" klicke, soll der Name ausgetauscht werden (von Fritz auf Hans... usw...) und auf der "down-grafik" soll der Namen eben nach unten ausgetauscht werden in der Reihenfolge (von Fritz nach Willi... usw...) und das soll immer so im Kreis möglich sein, mal hoch, mal runter, wenn ich bei "Willi" angekommen bin, will ich wieder zu "Hans" und von da zu "Fritz"...

    Hier ist mein Code: das Problem ist, dass er nicht so funktioniert wie ich mir das denke, ich weiß nich weiter, da ich nicht genau weiß, ob ich das so schreiben darf. Ich hab mir überlegt, dass das JavaScript feststellen soll, welcher Name im Moment ausgewählt ist und dann die beiden Möglichkeiten (entweder Name hoch oder Name runter) zur verfügung stellen soll. Leider kann ich nur zwischen "Hans" und "Fritz" wechseln...

    Wo ist mein Fehler, wie muss der Code geänder werden, damit er das macht was ich vorhabe?

    Code:
    <SCRIPT language=JavaScript type=text/javascript>
    <!--
    if (document.menu.name.value=="Hans") {
     function up() { document.menu.name.value="Willi"; }
     function down() { document.menu.name.value="Fritz"; }
    }
    if (document.menu.name.value=="Fritz") {
     function up() { document.menu.name.value="Hans"; }
     function down() { document.menu.name.value="Willi"; }
    }
    if (document.menu.name.value=="Willi") {
     function up() { document.menu.name.value="Fritz"; }
     function down() { document.menu.name.value="Hans"; }
    }
    // -->
    </SCRIPT>
    
    
    
    <form name="menu">
      <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="5">
        <TR>
          <TD><INPUT value=Fritz SIZE="10" NAME="name">  
          </TD>
          <TD>  
    <a href="javascript:void(0)" onclick="javascript:up()"><IMG BORDER="0" SRC="hoch.gif" WIDTH="11" HEIGHT="11"></a><BR>
    <a href="javascript:void(0)" onclick="javascript:down()"><IMG BORDER="0" SRC="runter.gif" WIDTH="11" HEIGHT="11"></a>
          </TD>
        </TR>
      </TABLE>
    </form>

  • #2
    Re: Formular Value Tausch Problem

    Derzeit definierst du dir up() und down() in Abhängigkeit davon, welcher Wert am Anfang im Feld steht (wenn das überhaupt funktioniert, denn dafür müsste entweder der Scriptblock nach dem Formular kommen, oder aber die Aktion per onload ausgelöst werden.


    Vielleicht solltest du den aktuellen Feldinhalt mal in den Funktionen erst auslesen - und dann darauf reagieren?


    Btw: Dein HTML ist ziemlich grauenvoll.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Morgen,

      a)
      Versuch es doch mal andersrum.
      Schreib eine Methode up() und eine Methode down(), in welcher du die Überprüfung auf den Feldinhalt übernimmst.
      PHP-Code:
      function up() {
       var 
      inhalt document.menu.name.value;

       if (
      inhalt == "xyz") {
        
      // dann tue irgendwas
       
      }

       if (
      inhalt == "yzx") ...
       }

      b)
      <INPUT value=Fritz SIZE="10" NAME="name">
      Ich glaub es ist nicht gewollt den value-Inhalt ohne "" zu definieren, oder?

      c) Wenn du nur einen Inhalt auslesen und austauschen willst, warum dann <form> Elemente? Da reichen doch auch <div>-Elemente in denen dein Inhalt als HTML steht. Dem Element gibst du eine "id" und über diese kannst du dann auf den Inhalt mittels z.B. innerHTML zugreifen und modifizieren.
      Mit onClick kann dann auch jedes andere Element deine Methoden ausführen.

      So far... have fun.

      Kommentar


      • #4
        Code:
        <SCRIPT language=JavaScript type=text/javascript>
        <!--
        
        function up() {
         var inhalt = document.menu.name.value;
        
         if (inhalt == "Hans") {
          document.menu.name.value="Willi";
         }
         if (inhalt == "Fritz") {
          document.menu.name.value="Hans";
         }
         if (inhalt == "Willi") {
          document.menu.name.value="Fritz";
         }
        }
        
        function down() {
         var inhalt = document.menu.name.value;
        
         if (inhalt == "Hans") {
          document.menu.name.value="Fritz";
         }
         if (inhalt == "Fritz") {
          document.menu.name.value="Willi";
         }
         if (inhalt == "Willi") {
          document.menu.name.value="Hans";
         }
        }
        
        // -->
        </SCRIPT>
        
        <form name="menu">
          <table border="0" cellpadding="0" cellspacing="5">
            <tr>
              <td><input value="Hans" size="10" name="name">  
              </td>
              <td>  
        <a href="javascript:void(0)" onclick="javascript:up()"><img border="0" src="hoch.gif" width="11" height="11"></a><br>
        <a href="javascript:void(0)" onclick="javascript:down()"><img border="0" src="runter.gif" width="11" height="11"></a>
              </td>
            </tr>
          </table>
        </form>
        Danke! So hats geklappt, klingt auch viel logischer so rum!
        Ich weiß, ich hab den HTML Teil geklaut, das ganze war ein Script, wo eine Zahl größer oder kleiner wird und ich hab es abgeändert...

        Hab jetzt den HTML Code neu geschrieben... und das <form> hat wohl nen Sinn, denn das ganze Formular wird noch größer und anschließen muss ich eh einen <form> befehlt benutzen, um die Inhalte des Formulars zu verschicken...

        Danke für eure gute Hilfe!

        Kommentar

        Lädt...
        X