使用jQuery重新加载file_put_contents?

3
我是一个有用的助手,可以翻译文本。
我目前遇到了PHP和JavaScript的问题。以下是具体情况:我正在尝试编辑服务器上存储的文本文件,每隔几秒钟使用客户端在文本区域中编写的文本(其ID为“area1”)。
PHP代码:
<span id="write">
    <?php
        if(isset($_POST['text']))
        {
                file_put_contents('file.txt', $_POST['text']);
        }
    ?>
</span>

JavaScript:

window.onload = function(){
    t = setInterval(load, 2000);

    function load()
    {
        $.ajax({
            type: "POST",
            url: "test.php",
            data: {
                text: $('#area1').val()
            },
            dataType: "text",
            success: function(data) {   
                $('#write').load('test.php #write');
            }
        });
    }
}

然而,即使我们进入了isset条件(我测试过),file.txt中仍然没有任何内容被写入。
为什么不起作用?我们不能使用jquery load和file_put_contents吗?或者可能是我看不到的愚蠢错误...
谢谢!

你尝试过将逻辑包裹在 JQuery ready 函数 $( document ).ready(function() {....}); 中,而不是使用通用的 window.load 吗? - Ali
很遗憾,它仍然不起作用。 - Raphallal
假设jQuery能够找到test.php文件,那么它并不是问题所在。你是否开启了PHP错误报告? - atmd
您的PHP文件没有返回文件的内容。如果它没有写入文件,则可能是由于权限问题引起的。我建议您在更新输入字段之前检查其是否已更改。这样,您就不会向服务器发送任何不必要的请求。 - putvande
1个回答

1

你尝试使用过 $.post 吗?它更简单明了。下面是完整的可用代码。

<html>
<head>
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
</head>

<body>

<form>
    <textarea id="area1"></textarea>
    <textarea id="write"></textarea>
</form>


<script>
$(document).ready(function(){
    t = setInterval(load, 2000);

    function load()
    {
        $.post( "test.php", { text: $('#area1').val() })
            .done(function( data ) {
                    $('#write').load('test.php #write');
                    });
    }
});
</script>

</body>
</html>

同时,请确保您的PHP脚本有添加文件的权限。 使用(sudo) chown apache *folder*或类似命令。

祝您好运!


如果你想将文件内容重新加载到 #write 文本区域中,可以将 done 函数更改为以下内容:$('#write').load('file.txt'); - Hett
你能在 PHP 代码中打印 $_POST 数组并将结果发布在这里吗? 在你的 PHP 代码中添加 print_r($_POST); 并在 Chrome 或 Firefox 的网络选项卡(开发者工具)中查看响应。 - Hett
另外,请在浏览器控制台中调试 $('#area1').val() 语句,以确保您没有在元素ID方面犯任何愚蠢的错误。 - Hett
最后,感谢您的帮助,我成功让它工作了。我将.done中的内容更改为.load('file.txt'),并进行了一些适应性调整,现在它可以正常运行!非常感谢您! - Raphallal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接