首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >autosave ajax,php

autosave ajax,php
EN

Stack Overflow用户
提问于 2010-12-23 10:46:37
回答 1查看 1.8K关注 0票数 2

我试图用prototype和PHP构建一个自动保存函数,但它不起作用。

如果我将$('txtdoc').value更改为“任意文本”,则保存“任意文本”,数据库中不会出现任何问题。

JS

代码语言:javascript
复制
document.observe("dom:loaded", function() { 
               intervalID = window.setInterval("autosave()",1000);
              });

              function autosave() {
                 new Ajax.Request('autosave.php?id=<?php echo $_GET["id"];?>', 
                { 
                method: 'post',
                  parameters: {txtdoc: $('txtdoc').value},

                                });
                            }

autosave.php

代码语言:javascript
复制
<?php 
include '../../db.php'; 

if(isset($_POST["txtdoc"])){
$did = mysql_real_escape_string($_GET["id"]);
$txtdoc = mysql_real_escape_string($_POST["txtdoc"]);
$sql="UPDATE doc SET txt = '$txtdoc' WHERE id = '$did'";
mysql_query($sql); 
}

?>

表单

代码语言:javascript
复制
<form action="" method="post">
<textarea id="txtdoc" name="txtdoc" style="width:605px; height:200px;"><?php echo $txt; ?></textarea>
<input type="submit" value="Save"/>
</form>

<script>
autosave();
</script>
EN

回答 1

Stack Overflow用户

发布于 2011-06-27 13:14:53

如果您正在使用原型,那么(除非您有理由它不能工作)您可能最好使用它..。

创建一个隐藏的div:

代码语言:javascript
复制
<div id="dummy" style="display: none"></div>

然后试试这个:

代码语言:javascript
复制
document.observe('dom:loaded', function() {
  new Ajax.PeriodicalUpdater(
    'dummy',
    'autosave.php?id=<?php echo $_GET["id"];?>', {
      method: 'post',
      parameters: {
        txtdoc: $F('txtdoc')
      }
    }
  , 10)
});

这样做是使用PeriodicalUpdater (每10秒触发一次)调用PHP脚本。参数使用$F (统一字段读取器方法)读取。

此外,我注意到在参数: object之后有一个后缀逗号。这将失败的IE,因为它不允许尾随逗号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4518015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档