是否可以让用户使用javascript / php或类似的东西修改html文件的元素?

时间:2014-07-29 19:53:10

标签: javascript php jquery html file-io

假设用户正在查看包含某些内容的网页,例如

<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这样的东西也可能因为我正在做的事情而变得凌乱。

3 个答案:

答案 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/#abouthttps://github.com/prose/prose。它完全使用客户端技术编写。

答案 2 :(得分:1)

也许它适合您的目的使用某种所见即所得的编辑器。其中一些只出现在dbl上单击文本,因此,用户可以通过dbl单击文本,编辑,然后按下“保存”按钮创建一个ajax请求到您的服务器。


This is文本编辑器的例子。