WebSQL Javascript - nur für Profis

Moin Ihr Programmierer-Experten

Ich habe hier ein Code-Snip und brauche mal Hilfe.

Es funktioniert alles, bis auf diesen Button, den ich mit Mühe eingebaut habe.
Die Daten werden auch schön aus der Datenbank und der entsprechenden Tabelle ausgelesen und im Feld input type = text als value angelegt.

Sieht dann so aus wie auf dem Bild.

Aber leider passiert nix, wenn ich auf den Button klicke :frowning:

Ich übergebe, wie man sehen kann, die ganz vorne stehende ID um später für das Update in der Tabelle den Datensatz zu identifizieren und zu ändern.

Ich habe schon alle Hochkomme etc. gezählt und komme einfach nicht auf den Fehler.

Hat Jemand eine Idee?

Und wo ist dieser Code-Snip jetzt?

Gruß,
Steve

SORRY :blush:

 function getResultSetFromTable(results, callback) {
      var length = results.rows.length;
      var j = 0;
      for (var i = 0; i < length; i++) {
        db.transaction(function(tx) {
          var k=0,tblname=results.rows[j++].tbl_name;
          tx.executeSql('SELECT * FROM ' + tblname , [], function(tx, results) {
            callback(tblname,results);
          });
        });
      }

    }

    function processResultSet(tblname,results) {
      console.log('----------------------'+tblname)
      var len = results.rows.length;
      var tbl = document.createElement('table');
      var trTblName = document.createElement('tr');
      var thTblName = document.createElement('th');
      thTblName.innerHTML = tblname;
      trTblName.colSpan = 2;
      trTblName.appendChild(thTblName);
      tbl.appendChild(trTblName);
        
     //create Table-Head

      var trHeader = document.createElement('tr');
      var th1 = document.createElement('th');
      th1.innerHTML = '<font color=orange>ID STEMPEL</font>';
      var th2 = document.createElement('th');
      th2.innerHTML = '<font color=red>HERSTELLER</font>';
      var th3 = document.createElement('th');
      th3.innerHTML = '<font color=green>STÜCKZAHL</font>';
      var th4 = document.createElement('th');
      th4.innerHTML = '<font color=blue>KALIBER</font>';
      var th5 = document.createElement('th');
      th5.innerHTML = '<font color=black>ACTION</font>'; 
      trHeader.appendChild(th1);
      trHeader.appendChild(th2);
      trHeader.appendChild(th3);
      trHeader.appendChild(th4); 
      trHeader.appendChild(th5);    
      tbl.appendChild(trHeader);
        
        //create Table-Inserts, show what is in the table

      for (var i = 0; i < len; i++) {

        var tr = document.createElement('tr');
        var td1 = document.createElement('td');
        td1.innerHTML = results.rows[i].id;
        var td2 = document.createElement('td');
        td2.innerHTML = results.rows[i].hersteller;
        var td3 = document.createElement('td');
        td3.innerHTML = '<form method="GET" action="edit_munition.html"><input name="formstueckzahl" type="text" value="' + results.rows[i].stueckzahl + '" size="5" maxlength="4" id="' + results.rows[i].id + '">';
        var td4 = document.createElement('td');
        td4.innerHTML = results.rows[i].kaliber;
        var td5 = document.createElement('td');
        td5.innerHTML = '<input type="submit" name="form" value="update"></form>';
          
        tr.appendChild(td1);
        tr.appendChild(td2);
        tr.appendChild(td3);
        tr.appendChild(td4);
        tr.appendChild(td5); 
        tbl.appendChild(tr);
          
      }
      var body = document.getElementsByTagName('X')[0];
      body.appendChild(tbl);
      body.appendChild(document.createElement('hr'));
        

    }

Wo ist denn da der SQL-Teil, der ein Update ausführt?

Gruß,
Steve

Guten Morgen

Der ist im Zieldokument „edit_munition.html“, der sich mit dem Button öffnen soll :smile:

Mit dem Button wird ja der entsprechende Wert = Value = „results.rows[i].stueckzahl“ UND = id = „results.rows[i].id“ an das Zieldokument übergeben.

Komme nur nicht drauf warum nichts passiert, wenn man auf den Button drückt :frowning:

Das Dokument selbst hatte zuvor keinen Button, sondern war eine reine Listenerzeugung des Inhaltes der WebSQL Datenbank und der Tabellen und deren Inhalte dort und funktioniert auch reibungslos.
Ziel ist es einen Button einzubauen, der mir ermöglicht die Werte zu ändern und zurück in die DB zu schreiben.

And the 50% solution is:

 td3.innerHTML = '<form method="GET" action="edit_munition.html"><input name="formstueckzahl" type="text" value="' + results.rows[i].stueckzahl + '" size="5" maxlength="4" id="' + results.rows[i].id + '">' + " " + '<input type="submit" name="form" value="update"></form>';

Mann kann nämlich nicht über TD hinaus ein Form aufbauen wenn man das so Scripted!
Es muss in einer Zelle stehen der Form-String.

But … das ist noch nicht die ganze Lösung :frowning:

Denn irgendwie muss ich ja auch noch die ID übergeben, damit der Datensatz in der Tabelle verifiziert werden kann. Geht das ggf. über ein unsichtbares Feld in der Form?

Ideen?

So, hier nun die Lösung:

td3.innerHTML = '<form method="GET" action="edit_munition.html"><input name="formstueckzahl" type="text" value="' + results.rows[i].stueckzahl + '" size="5" maxlength="4" id="formstueckzahl"><input type="hidden" name="formid" value="' + results.rows[i].id + '">' + " " + '<input type="submit" name="form" value="update"></form>';