【发布时间】: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=<?php echo $_GET["id"];?>',行将不会给出正确的结果.. -
是的,JS在.php文件中
-
你能确定哪些是真正有效的,哪些是无效的。您的 AJAX 调用是否真的触发了? - 如果是,您将能够在 Firebug 中看到
-
我在 之间写的文本直接保存在代码中,在数据库中没有任何问题。但是,当我使用网络浏览器在 textarea 中编写文本时,什么都没有保存。
标签: php javascript ajax prototypejs