我正在尝试制作类似网络记事本的东西,每分钟自动保存更改。 注释存储在db的每个用户的“notas”字段中。
这里涉及一段代码:
<html>
<head>
<script type='text/javascript'>
function submitForm(){
document.nota.submit();
}
function setTimeForSubmit(){
window.setTimeout("submitForm()",60000);//Expire after 60 Sec
}
</script>
</head>
<body onload="setTimeForSubmit()">
<form method="POST" name="nota" id="nota" action="notas.php">
<textarea name="txtNota" id="txtNota">
<?php
if(isset($_POST['txtNota'])){
$sql =
"UPDATE `login`
SET `notas`= ".$_POST['txtNota']."
WHERE login_id = ".$_SESSION['login_id']."";
$rs = $DB->Execute($sql);
}
$sql2 = "SELECT notas FROM login WHERE login_id=".$_SESSION['login_id']."";
$rs2 = $DB->Execute($sql2);
echo $rs2->fields[0];
echo $_SESSION['login_id'];
?>
</textarea>
<input type='submit' name='guardar' value="guardar"/>
</form>
</body>
</html>
我已经检查了每个变量和查询,它们没问题,但是当我尝试以这种方式提交时,UPDATE
无效。它自己完成后,$_POST
和$_SESSION
也有自己的正确值,SELECT
。
为什么它不起作用的任何线索?它不会抛出任何错误
答案 0 :(得分:2)
变化
`notas`= ".$_POST['txtNota']."
到
`notas`= '".$_POST['txtNota']."'
你错过了'
答案 1 :(得分:0)
我有类似的问题,这个解决方案对我有用。
这使用了一个脏位和表单提交周围的包装器。这是因为我最终得到了几个保存触发器,包括处理破坏性视图切换事件。而且我不想最终保存非变更事件。
注意:我想我在另一个问题上找到了这个解决方案,也许你可以帮我链接它。
// PROP SHEET: save after a second using dirty bit for other save triggers
$('#props input, #props textarea, #props select').change(function() {
$('#props').attr('dirty', true);
console.log('change event fired',$(this));
delay(function(){
save_props();
}, 1000 );
});
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();