Formularfelder direkt ausfüllen

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

  • Formularfelder direkt ausfüllen

    Hallo zusammen

    Ich mache mit Java Script folgendes, um die Felder sofort zu aktuallisieren.
    Code:
    script type="text/JavaScript">
    function  rechne()
    {  document.form.preis.value=document.form.stpreis.value*document.form1.detail_menge.value
    }
    </script>
    Aufgerufen wird die Funktion mittels onKeyUp="rechne()"

    Das funktioniert also einwandfrei, nun die Schwierigkeit.
    Die Formularfelder werden mittels while Schlaufe aus einer DB gezogen und wie folgt dargestellt.
    HTML-Code:
    <input type="text" onKeyUp="rechne()" value="<? echo"$detail_stkpreis"; ?>" name="stpreis[<? echo"$detail_id" ?>]" >
    Das heist ich habe den Namen in einem Array referenziert mit der $detail_id. Und so kann ich im JS das feld nicht mehr ansteuern. Wie kann ich auf ein solches Array zugreifen?

    Folgendes habe ich schon erfolglos versucht.
    Code:
     document.form.preis.value=document.form.stpreis[document.form.detail_id.value].value*document.form.detail_menge[document.form.detail_id.value].value
    weiss mir hier jemand Rat? Danke

  • #2
    Hallo Sepp,

    um eine ähnliche Frage ging es hier: http://www.php-resource.de/forum/htm...tml#post625292

    Wenn dir das nicht helfen sollte, bitte nochmal nachfragen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke für die schnelle Antwort, leider komme ich dennoch nicht zum Ziel.

      Habe es wie folgt ohne Erfolg versucht.
      Code:
       document.form.preis.value=document.form.["stpreis[document.form.detail_id.value].value"]*document.form.["detail_menge[document.form.detail_id.value].value"]
      oder

      Code:
       document.form.preis.value=document.form.stpreis["[document.form.detail_id.value]"].value*document.form.detail_menge["[document.form.detail_id.value]"].value

      Kommentar


      • #4
        Zitat von sepp Beitrag anzeigen
        Code:
         document.form.preis.value=document.form[B][COLOR="Red"].[/COLOR][/B]["stpreis[document.form.detail_id.value].value"]*document.form.["detail_menge[document.form.detail_id.value].value"]
        Also, erstmal muss bei der []-Notation der Punkt ganz weg (rot), dann wird der Inhalt als String angegeben und daher nicht mehr ausgewertet.


        Damit es doch ausgewertet wird, muss der String aufgebrochen und konkateniert werden:
        Code:
        document.form.preis.value =
        	document.form["stpreis[" + document.form.detail_id.value + "]"].value
        	* document.form.["detail_menge[" + document.form.detail_id.value + "]"].value
        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Danke für die Hilfe aber da bekomme ich einen JS Fehler

          'document.form[...].value' is null or not an object

          Ich gebe das detail_id feld auch als Array aus, allerdings nicht referenziert also so
          HTML-Code:
          <input type="hidden" name="detail_id[]" value="<? echo"$detail_id"; ?> ">
          also habe ich das Beispiel erweitert...allerding auch ohne Erfolg

          Code:
          document.form.preis.value =
          	document.form["stpreis[" + document.form["detail_id[]"].value + "]"].value
          	* document.form.["detail_menge[" + document.form["detail_id[]"].value + "]"].value

          Nach weiteren Test habe ich folgendes heraus gefunden.
          HTML-Code:
          var Kontrolle =document.form1["detail_id[]"].value;
          		alert (Kontrolle);
          das Ergebins ist Kontrolle ist undefiniert!!!

          Das sollte doch so richtig sein um das Feld detail_[] abzufragen?!
          Zuletzt geändert von sepp; 26.09.2009, 14:51.

          Kommentar


          • #6
            http://de.selfhtml.org/javascript/ob...tm#allgemeines
            - mit Verstand lesen
            - Schema 4 korrekt anwenden
            - fertig
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Habe es umgesetzt aber auch ohne Erfolg!
              Code:
              document.forms["form1"].elements["detail_id[]"].value;
              Generell habe ich das ganze nun so um gebaut


              Code:
              function  rechne()
              {  
              	var Kontrolle =document.form1["detail_id[]"].value
              		
              	document.form1["ezpreis[" + Kontrolle + "]"].value=
              	document.form1["stpreis[" + Kontrolle + "]"].value
              	*document.form1["detail_menge[" + Kontrolle + "]"].value
              
              }
              wenn ich also nun die Variable mit einer ID Nummer fülle, zu Testzwecken, funktioniert alles.

              Also ist nur noch das auslesen der Var Kontrolle ein Problem!

              Kommentar


              • #8
                "umgesetzt aber auch ohne Erfolg" ... "zu Testzwecken, funktioniert alles" ... "nur noch das auslesen der Var Kontrolle ein Problem"


                Merkst du bitte selber, wie widersprüchlich dein Gefasel ist - und lieferst du anschliessend bitte mal ein brauchbare Problembeschreibung? Danke.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Als Test habe ich eine der ID's welche im Feld
                  HTML-Code:
                  <input type="hidden" name="detail_id[]" value="<? echo"$detail_id"; ?> ">
                  ausgelesen wird, direkt eingetragen
                  Code:
                  function  rechne()
                  {  
                  	var Kontrolle =("105");
                  		
                  	document.form1["ezpreis[" + Kontrolle + "]"].value=
                  	document.form1["stpreis[" + Kontrolle + "]"].value
                  	*document.form1["detail_menge[" + Kontrolle + "]"].value
                  
                  }
                  So kann ich die Zeile mit der ID 105 steuern wie gewünscht!
                  Das heisst für mich die letzten 3 Befehlzeilen stimmen und funktionieren!

                  Also muss ich nur noch die Variable Kontrolle mit der ID welche im Feld
                  HTML-Code:
                  <input type="hidden" name="detail_id[]" value="<? echo"$detail_id"; ?> ">
                  steht füllen.

                  Das versuchte ich woe folgt:
                  Code:
                  var Kontrolle =document.form1["detail_id[]"].value
                  Leider stimmt das so aber nciht da ich den Fehler bekomme das Feld sei leer oder undefiniert.

                  Nun die Frage: wie kann ich mittels JS das Feld
                  HTML-Code:
                  <input type="hidden" name="detail_id[]" value="<? echo"$detail_id"; ?> ">
                  abfragen?

                  Ich hoffe meine Erklärung war nun auch für alle verständlich. Ich wüsste nciht wie ich es anders beschreiben müsste - Danke

                  Kommentar


                  • #10
                    Wenn der Zugriff auf die anderen Felder über document.form1 klappt, dann gibt es keinen ersichtlichen Grund, warum das mit diesem Feld nicht auf die gleiche Weise gehen sollte.

                    Ausser vielleicht, dass du einen Fehler im HTML-Code hast - den du uns aber bisher immer noch nicht gezeigt hast, so wie er letztendlich aussieht, sondern immer irgendeinen PHP-Kram.
                    Wenn du ein clientseitiges Problem hast, dann poste auch clientseitigen Code!

                    Leider stimmt das so aber nciht da ich den Fehler bekomme das Feld sei leer oder undefiniert.
                    Und Fehlermeldungen, so sie denn vom JavaScript-Interpreter kommen, bitte wörtlich zitieren, und nicht in Prosa umschreiben.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Zitat von wahsaga Beitrag anzeigen
                      Wenn der Zugriff auf die anderen Felder über document.form1 klappt, dann gibt es keinen ersichtlichen Grund, warum das mit diesem Feld nicht auf die gleiche Weise gehen sollte.
                      Doch, gibt es: da ist ein Leerzeichen zuviel (habs durch einen roten Unterstrich markiert):

                      Code:
                      <input type="hidden" name="detail_id[]" value="<? echo"$detail_id"; ?>[B][COLOR="Red"]_[/COLOR][/B]">
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Danke ja genau da hat es noch einen leerschlag zuviel, aber dennoch bekomme ich die Fehlermeldung is null or not an oject!?

                        Hatte schon Freude den Fehler mit dem Leerschlag gefunden zu haben ;-(

                        Kommentar


                        • #13
                          Zitat von sepp Beitrag anzeigen
                          Danke ja genau da hat es noch einen leerschlag zuviel, aber dennoch bekomme ich die Fehlermeldung is null or not an oject!?

                          Hatte schon Freude den Fehler mit dem Leerschlag gefunden zu haben ;-(
                          Den Fehler hast nicht du gefunden! Statt dich immer noch zu beschweren, solltest du lieber mal lesen, was wahsaga geschrieben hat: Poste clientseitigen Code!

                          Noch besser, du nimmst (oder installierst) einen JS-Debugger und gehst mal strukturiert an das Problem ran. Zur Not tun es auch ein paar sinnvoll eingestreute alert-Aufrufe.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Ja, entschuldige natürlich hast DU den Fehler gefunden ich habe ihn nur korrigiert!
                            HTML-Code:
                            <tr bgcolor="#FFFFFF">
                             <td><input type="hidden" name="detail_id[]" value="6">
                            <input name="detail_menge[6]" type="text" onKeyUp="rechne()"  id="detail_menge" value="1" /></td>
                             <td><input name="produkt[6]" type="text" id="produkt" value="artikel" /></td>
                            <td><input type="text" onKeyUp="rechne()" value="298.50" name="stpreis[6]" ></td>
                             <td><input type="text" disabled="disabled" value="298.5" name="ezpreis[6]" ></td>
                            </tr>
                            Meint Ihr das? So wird eine Zeile ausgegeben

                            Kommentar


                            • #15
                              Zitat von sepp Beitrag anzeigen
                              Meint Ihr das? So wird eine Zeile ausgegeben
                              Eine von mehreren? Benutzen die anderen auch detail_id[]? Wenn ja, ist document.form1["detail_id[]"].value immer die der allerletzten Zeile. Eventuell kommst du besser, wenn du per PHP diese ID mit an die rechne-Funktion übergibst:
                              PHP-Code:
                              onkeyup="rechne(<?php echo $detail_id;?>)"
                              Ist aber nur ne Vermutung, da wir immer noch keinen Überblick haben. Mit den einzelnen Code-Fragmenten kommen wir hier bald nicht mehr weiter. Bitte den gesamten JS-Code und den HTML-Code für das gesamte Formular posten.

                              Gruß,

                              Amica
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X