사용자가 테이블에 데이터를 입력 한 다음 인쇄하지 못하는 것 같습니다. SQL 테이블에 변수 삽입
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
function submit() {
var input = document.getElementById("save_name").value;
localStorage.setItem("inputed_name", input);
var msg;
db.transaction(function (tx)
{
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log varchar(50))');
tx.executeSql('delete from LOGS'); // Clears table (for debugging)
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, localStorage.inputed_name)');
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++) {
msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
document.querySelector('#status').innerHTML += msg;
}
}, null);
});
}
</script>
</head>
<body>
<div id="status" name="status">Status Message</div>
<p>Enter data: <input type="text" id="save_name" name="inputed_name" /><br/></p>
<p><button onclick="submit()" type="button">Submit Data</button></p> <!--Should print data from the table-->
</body>
</html>
내가 "템플릿"/ 지금은 두 변수를 추가 할
아래의 해결 here
에서 이것에 대한 시작을 가지고 : 여기
는 지금까지 내 코드입니다 내 테이블, 원래 로그 변수 및 시간 스탬프로 작동하는 초function submit()
{
var input = document.getElementById("save_name").value;
var msg;
var time_stamp = new Date();
db.transaction(function (tx)
{
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id auto_increment, date_time varchar(128), log varchar(64))');
tx.executeSql('INSERT INTO LOGS (log, date_time) VALUES (?, ?)', [input, time_stamp]); // <--Problem here!
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
});
}
나머지 코드는 위와 같습니다. 이 방법이 효과가있을 것이라고 생각하지만 테스트 할 때 테이블에 아무것도 들어 가지 않습니다.
var input = document.getElementById('someId').value;
...
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, ?)', [input]);
...
난 당신이 잊을 수있을 것 같아요 :
나는이가 무엇인지 데이터베이스 모르는에도 불구하고 (막 바이어스처럼, 그리고 알고 싶다) 나는 문제가 삽입 쿼리에서'localStorage.inputed_name' 기준과 관련이있다 생각 . –
@MarkByers : 모든 목적과 목적을 위해 Sqlite를 기반으로 한 JavaScript 용 브라우저의 로컬 저장소와 모양이 비슷합니다. –
@Mitch :'db'는 어디에서 왔습니까? 또한 HTML을 표시하십시오. 요소의'name' 속성과 함께'getElementById'를 사용할 수 없습니다. –