假设用户正在查看包含某些内容的网页,例如
<div>some text</div>
有没有办法让他们将内容更改为
<div>new text</div>
并永久/动态地将这些更改提交到html文件(所有这些都不使用数据库来存储div的内容)?
以下是我想要做的一些示例(单击文本区域进行编辑): http://www.appelsiini.net/projects/jeditable/default.html
但是上面的插件使用sqlite数据库来保存更改/存储信息,而不是修改实际的html文件。
我知道这可以通过使用像python / perl这样的脚本语言来实现,但有没有更简单的方法(比如php / javascript / jquery等)。
***编辑: 另外,我不想使用数据库的原因是我可以将所有文件移动到任何Web服务器而无需设置任何内容。甚至像sql lite这样的东西也可能因为我正在做的事情而变得凌乱。
答案 0 :(得分:1)
是的,您可以使用php动态加载文件。然后,只要您想将正文DOM保存回服务器并覆盖现有文件。这通常被认为是非常糟糕的做法。
<html>
<head>
<script>
function SaveBody() {
var body = document.getElementById("divtoSave");
var f = document.createElement("form");
f.setAttribute('method',"post");
f.setAttribute('action',"save.php");
var b = document.createElement("input");
b.type = "text";
b.name = "body";
b.id = body;
f.appendChild(b);
f.submit();
}
</script>
</head>
<body>
<div id="divToSave">
<?php
include "otherfile.txt";
?>
</div>
</body>
</html>
save.php
<?php
file_put_contents("otherfile.txt", $_POST['body']);
?>
答案 1 :(得分:1)
如果您只需要每个用户都能看到他/她自己的更改,则可以使用HTML5存储API。 https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage
为了让用户对页面进行更改,然后让其他用户看到该更改,需要涉及服务器。您可以使用PHP(或一种好的语言)直接写入HTML文件,但如果多个用户想要立即编辑,则可能会遇到问题。这就是数据库派上用场的地方。
如果您正在寻找一个简单的解决方案,那么一个选项可能是使用其他人的服务器。例如,GitHub公开了用于编辑文件的API。有关如何使用此类内容的示例,请参阅prose.io开源内容编辑器:http://prose.io/#about和https://github.com/prose/prose。它完全使用客户端技术编写。
答案 2 :(得分:1)
也许它适合您的目的使用某种所见即所得的编辑器。其中一些只出现在dbl上单击文本,因此,用户可以通过dbl单击文本,编辑,然后按下“保存”按钮创建一个ajax请求到您的服务器。
This is文本编辑器的例子。