Как отправить дополнительный параметр в функцию? - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть этот код, который отображает текст из базы данных 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);
    });
  }

У меня есть несколько таких значений, с которыми я пытаюсь работать. Поэтому я хотел бы указать столбец. Приведенный выше код работает, если я установил в функции столбец product , в следующем коде я пытаюсь отправить дополнительный параметр функции, но он не работает. Что я тут не так делаю?

  <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);
    });
  }

1 Ответ

1 голос
/ 02 февраля 2011

То же самое с любой полноценной СУБД, вы не можете параметризовать имена столбцов, только значения.Так что вам нужно сделать это так

  <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);
    });
  }
...