【问题标题】:autosave ajax, php自动保存ajax,php
【发布时间】:2011-05-29 21:58:04
【问题描述】:

我正在尝试使用原型和 PHP 制作自动保存功能,但它不起作用。

如果我将 $('txtdoc').value 更改为 "any text",那么 "any text" 将被保存而没有任何数据库中的问题

JS

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

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

?>

表格

<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>

【问题讨论】:

  • 请解释一下“不起作用”是什么意思。
  • JS 是否在 .php 文件中(即它是否由 PHP 解释器解释)?否则new Ajax.Request('autosave.php?id=&lt;?php echo $_GET["id"];?&gt;', 行将不会给出正确的结果..
  • 是的,JS在.php文件中
  • 你能确定哪些是真正有效的,哪些是无效的。您的 AJAX 调用是否真的触发了? - 如果是,您将能够在 Firebug 中看到
  • 我在 之间写的文本直接保存在代码中,在数据库中没有任何问题。但是,当我使用网络浏览器在 textarea 中编写文本时,什么都没有保存。

标签: php javascript ajax prototypejs


【解决方案1】:

如果您正在使用原型,那么(除非您有它不起作用的原因)您可能最好使用它...

创建一个隐藏的 div:

<div id="dummy" style="display: none"></div>

然后试试这个:

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(统一字段读取器方法)读取参数。

此外,我注意到您在参数后面有一个逗号:对象。这将在 IE 上失败,因为它不允许尾随逗号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多