【问题标题】:Save JavaScript array to server using PHP使用 PHP 将 JavaScript 数组保存到服务器
【发布时间】:2013-05-30 19:46:23
【问题描述】:

我最近开始使用 Cloud9 IDE 使用 javascript/php 进行编码。

我知道这可能与此处的某些问题重复,但我还没有找到适合我的解决方案。

我有一组自定义 javascript 对象,我想将它们保存到服务器上的文件中(稍后检索以重新填充页面上的数据):

<script>
    var questionList = [];

    function saveToFile() {
    var x =JSON.stringify(questionList);
    $.post("saveQuestion.php", {data : x}, function(){alert("File saved successfully")});
    }
</script>

//in the body of the html
    <button id="saveToFileButton" type="button" onclick='saveToFile()'>Save to file</button>

php文件'saveQuestion.php'在同一目录下,如下:

<?php
$data = $_POST['data'];
file_put_contents("savetest.txt", $data);
?>

然而,尽管我尽了最大努力,'savetest.txt' 仍然是空的。

我知道 'x' 被分配了正确的值,因为我可以将其打印到 html 元素中。

编辑:php 脚本有权写入文件,但据我所知,它从未被调用过。这可能是什么原因/解决方案?

有人可以提供一个简单的解释,突出我做错了什么以及可能的解决方法吗?

谢谢!

【问题讨论】:

  • 对我来说看起来不错,在运行下一行之前检查 $data 在 php 中包含的内容。
  • 你的 PHP 文件(试图保存到 savetest.txt 的文件有写权限吗?
  • 检查是否有写入文件的权限,代码看起来没问题,这意味着PHP脚本可能不允许写入文件。让它创建一个随机名称的文件,并确保它可以写入它所在的目录。
  • 检查 $data 并授予写入权限的最简单方法是什么?编辑:将“savetext.txt”更改为“randomname.txt”会导致创建文件“randomname.txt”,但内容为空?
  • 实际上,按下“saveToFileButton”时并没有创建文件“randomname.txt”,而是在我手动运行php文件时...

标签: php javascript jquery save cloud9-ide


【解决方案1】:

也许您应该为 questionsList 数组分配一些值:

<script>

    // Check if your assigning a value to this array
    var questionList = ['value 1', 'value 2', 'etc..'];

    function saveToFile() {
    var x =JSON.stringify(questionList);
    $.post("saveQuestion.php", {data : x}, function(){alert("File saved successfully")});
}
</script>

【讨论】:

  • questionList 在程序的其他地方被赋值,我通过调用验证它不是nullalert(x);
猜你喜欢
  • 2016-08-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2016-10-23
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多