Ankündigung

Einklappen
Keine Ankündigung bisher.

JS Übernahme von Daten aus einer Tabelle

Einklappen

Neue Werbung 2019

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

  • JS Übernahme von Daten aus einer Tabelle

    ch habe folgendes Problem.
    im PHP Programm innerhalb eines Formulars kann ein Update-Button je Zeile angeklickt werden.
    Muster:
    PHP-Code:
    PHP-Code:
    echo("<td><input type=\"button\" value=\"upd.\"onclick=\"loadUpdCal('$i1', 
    '
    $user','$monat','$jahr','$pass','{$row['PLFA']}' ,'{$row['PLPNR']}','$blt01');\"></td>"); 
    in der Eingabezeile steht:
    PHP-Code:
    PHP-Code:
    echo("<td  width=\"18\" ><input id='T01' type=text size='1' value={$blt01}> </td> "); 
    im JS versuche ich die Eingabe vom Feld $blt01 wieder einzulesen
    Code:
    var tag01   = document.Abfrage.T01.value;
    Ergebnis
    das Feld ist undefined

    Frage
    wie muss ich die Definition so schreiben, das JS den Wert der Zeile auslist.

    Danke für jede Hilfestellung.

  • #2
    Bitte benutze für PHP Code die und für Code wie JS die hier .

    Du musst das dann natürlich auch über ID ansprechen.

    Code:
    var element = document.getElementById('T01').value;
    alert(element);

    Kommentar


    • #3
      Probier es doch mal über diese Variante:
      Code:
      document.getElementById('T01').value;
      Beitrag editiert:
      zu spät...

      Kommentar


      • #4
        hallo zusammen und Dank für die ersten Antworten.
        Doch leider ohne Erfolg. Das Ergebnis bleibt = undefiniert.

        irgendwie muß doch auch die Line-Nr. der Tabelle in dieser Abfrage verarbeitet werden. Doch wie?
        Code:
        function loadUpdCal(line,user,monat,jahr,pass,plfa,plpnr,blt01)
        var tag01	 = document.getElementById('T01').value;
        	alert("T01=",tag01);
        ALERT bringt nur "T01= " aber keinen Inhalt.

        Kommentar


        • #5
          Was soll denn das Komma in der alert()-Methode bewirken?

          Du weist, wie man Strings in Javascript konkateniert?

          Kommentar


          • #6
            Wenn JavaScript sagt, daß es "undefined" ist, glaube ich ihm das!
            Prüf mal Deinen Quelltext und laß Dir mit dem Firebug mal die JS-Konsole zeigen.

            Beitrag editiert:
            Nur mal ganz blöde nachgefragt, Du lässt Dir doch hoffentlich nicht den Rückgabewert von alert() ausgeben?
            Der ist nämlich immer undefined!

            Kommentar


            • #7
              Vielen Dank für die Hinweise.
              bei ALERT hatte ich versucht den Hinweis auf das Feld mit auszugeben.
              dieses habe ich jetzt korrigiert.

              Es werden jetzt auch Daten übernommen, aber nicht aus der geänderteten Zeile, sondern alle Werte aus der 1. Zeile der Tabelle.

              irgendwie muss ich ihm doch den JS mitteilen, das er die Werte aus der Zeile mit dem UPDATE-BUTTON Zeile nimmt.

              Kommentar


              • #8
                Und warum übergibst Du Deiner Funktion nicht einfach die ID des Button???

                Kommentar


                • #9
                  hallo, ich übergebe doch die Line-Nr. aus dem Update
                  JS=line in PHP=$i1

                  Code:
                  function loadUpdCal(line,user,monat,jahr,pass,plfa,plpnr,blt01)
                  PHP-Code:
                  <input type=\"button\" value=\"upd.\" onclick=\"loadUpdCal('$i1','$user','$monat','$jahr','$pass',
                  '
                  {$row['PLFA']}' ,'{$row['PLPNR']}','$blt01'); 

                  Kommentar


                  • #10
                    Und Du weißt, was in $i1 drin steht?!
                    Also wirklich "wissen", nicht vermuten oder erwarten!

                    Kommentar


                    • #11
                      in $i1 sollte die Zeilen-Nr. stehen, es war jedoch NULL.
                      das Problem habe ich behoben. jetzt steht die Zeilen-Nr. richtig drin, beginnend mit 1 usw.
                      nur das Hauptproblem hat sich damit nicht behoben.
                      Code:
                      var tag01	= document.getElementById('T01').value;
                      übernimmt den Wert aus der 1. Zeile, egal welche ich anklicke.
                      irgenwie müßte man dem JS doch mitteilen, das er die Werte aus der ausgewählten Zeile nimmt.

                      Kommentar


                      • #12
                        Zeige mal in sauberen HTML wie eine Zeile aussieht.
                        Haben die Zeilen immer den selben Aufbau?
                        Und vor allem beschreibe noch mal ganz genau was du vor hast, so richtig sehe ich grad nämlich nicht mehr durch.

                        Ich denke du wirst dich hier mit dem DOM beschäftigen müssen wie du innerhalb des DOMS von einem Elementknoten aus Navigieren kannst.

                        Begriffe wie parentNode, previousSibling, nextSibling musst du dir da auch anschauen. Schau dir an wie du mit dem target von Javascript arbeiten kannst, ich hatte hier mal im Javascript Forum einen Beispielcode gepostet.

                        Kommentar


                        • #13
                          Vielleicht hab' ich ja zu viel RedBull intravenösiert heute, aber ich verstehe nicht, wozu Du die Zeilennummer brauchst.
                          Jedes Input (type="text")-Feld muß eine eindeutige ID bekommen.
                          Die übergibst Du an die Funktion und gut is:
                          Code:
                          // HTML
                          <input type="text" id="t01" value="irgendwas" />
                          <input type="button" value=" Klick mich " onclick="zeigwas('t01')" />
                          
                          <input type="text" id="t02" value="irgendwas" />
                          <input type="button" value=" Klick mich " onclick="zeigwas('t02')" />
                          
                          // JavaScript
                          function zeigwas( objectID ) {
                            var val = document.getElementById( objectID ).value;
                            alert( val );
                          }
                          Wenn du mehr Parameter in Deiner Funktion brauchst, übergibst die halt auch, aber die Zeilennummer ist imho sowas von unwichtig...


                          Beitrag editiert:
                          btw. ich würde da auch mal an jQuery denken, dann brauchst diese plöden onclick-Dinger nicht!

                          Kommentar


                          • #14
                            vielen Dank für die Hilfe die ich von Euch bekommen.
                            aber irgendwie kann ich mich nicht klar ausdrücken.
                            die Anwendung könnt Ihr über
                            http://213.168.66.67:443/rzkt69
                            aufrufen. Name und Passwort sind heute GAST.
                            es geht um die Funktion "Urlaub bearbeiten" dann den Monat auswählen.
                            in der 3. Zeile unter dem 1. ein >U< eingeben und dann upd. drücken.
                            Das JS übernimmt dann die Werte aus der 1. Zeile und ändern den Datenbestand entsprechend.
                            Nach dem UPDATE werden die Daten neu gelesen, und es steht wieder ein >F< drinnen. die Zeilen-Nr. steht auch vor dem Namen.

                            Kommentar

                            Lädt...
                            X