Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
autosaveajax,php_Php_Javascript_Ajax_Prototypejs - Fatal编程技术网

autosaveajax,php

autosaveajax,php,php,javascript,ajax,prototypejs,Php,Javascript,Ajax,Prototypejs,我正试图用prototype和PHP创建一个autosave函数,但它不起作用 如果我将$('txtdoc')。值更改为“任意文本”,则“任意文本”在数据库中保存时不会出现任何问题 JS document.observe("dom:loaded", function() { intervalID = window.setInterval("autosave()",1000); }); function au

我正试图用prototype和PHP创建一个autosave函数,但它不起作用

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

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

                                });
                            }
document.observe(“dom:loaded”,function(){
intervalID=window.setInterval(“autosave()”,1000);
});
函数autosave(){
新的Ajax.Request('autosave.php?id=',
{ 
方法:“post”,
参数:{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); 
}

?>

如果您使用的是prototype,那么(除非您有理由说明它不起作用),您最好使用它

创建一个隐藏的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)
});
document.observe('dom:loaded',function(){
新的Ajax.PeriodicalUpdater(
“哑巴”,
“autosave.php?id=”{
方法:“post”,
参数:{
txtdoc:$F('txtdoc')
}
}
, 10)
});
这样做的目的是使用PeriodicalUpdater(每10秒触发一次)调用PHP脚本。使用$F(统一字段读取器方法)读取参数


另外,我注意到在parameters:object后面有一个逗号。这将在IE上失败,因为它不允许尾随逗号。

请解释“不工作”是什么意思。JS是否在.php文件中(即是否由php解释器解释)?否则,行
newajax.Request('autosave.php?id=',
不会给出正确的结果。.是的,JS在一个.php文件中。你能识别什么在实际工作和不工作。你的AJAX调用是否实际启动了吗?-你可以在Firebug中看到我直接在保存的代码中编写的文本,而不会在数据库中出现任何问题。但是,当我编写使用web浏览器在文本区域中编辑文本,然后不保存任何内容。
document.observe('dom:loaded', function() {
  new Ajax.PeriodicalUpdater(
    'dummy',
    'autosave.php?id=<?php echo $_GET["id"];?>', {
      method: 'post',
      parameters: {
        txtdoc: $F('txtdoc')
      }
    }
  , 10)
});