追加のパラメーターを関数に送信するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4868374

  •  28-10-2019
  •  | 
  •  

質問

Web SQLデータベースからテキストを表示するこのコードがあります。

<span contenteditable="true" 
    onkeyup="updateRecord('+item['id']+', this)">' + item['product'] + '</span>

テキストを編集すると、updaterecord関数を呼び出して値を更新します。

  function updateRecord(id, textEl) {
    db.transaction(function(tx) {
      tx.executeSql("UPDATE products SET product = ? WHERE id = ?", 
          [textEl.innerHTML, id], null, onError);
    });
  }

私はこれらの価値のいくつかを持っていますが、私は一緒に仕事をしようとしています。列を指定したいと思います。列をに設定すると、上記のコードが機能します 製品 関数では、次のコードでは、関数に追加のパラメーターを送信しようとしていますが、機能していません。ここで何が間違っているのですか?

  <span contenteditable="true" 
        onkeyup="updateRecord('+item['id']+', 'product', this)">'+ item['product'] + '</span>

  function updateRecord(id, column, textEl) {
    db.transaction(function(tx) {
      tx.executeSql("UPDATE products SET ? = ? WHERE id = ?", 
          [column, textEl.innerHTML, id], null, onError);
    });
  }
役に立ちましたか?

解決

フルボディのDBMと同じで、列名のみをパラメーター化することはできません。したがって、このようにする必要があります

  <span contenteditable="true" 
        onkeyup="updateRecord('+item['id']+', 'product', this)">'+ item['product'] + '</span>

  function updateRecord(id, column, textEl) {
    db.transaction(function(tx) {
      tx.executeSql("UPDATE products SET " + column + " = ? WHERE id = ?", 
          [column, textEl.innerHTML, id], null, onError);
    });
  }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top