【问题标题】:Saving JSON to text file将 JSON 保存到文本文件
【发布时间】:2018-01-24 11:04:19
【问题描述】:

我有一个表格。用户在页面上添加标题和视频 URL。此标题和 URL 由 Javascript 读取并制成 JSON。现在我的 JSON 需要以 JSON 格式保存到现有的 myDB.txt 文件中。我正在使用 Ajax、PHP 和 Javascript。我找不到我的错误,因为创建了 JSON,我可以通过控制台日志看到它。但是,数据并未保存在文本文件中。

有人可以帮我完成这项任务吗?

function jsonFunc() {
	var nn = document.getElementById('videoName').value;
	var vv = document.getElementById('videoUrl').value;
	var obj = { "name": nn, "url" : vv };
	var myJSON = JSON.stringify(obj);
	console.log(myJSON);
	
	function savePHPfunc(myJSON){
		var x=new XMLHttpRequest();
		x.open("GET", "save.php="+myJSON, true);
		x.send();
	}
	
}


 <?php
$myfile = fopen("myDB.txt", "a") or die("Unable to open file!");
$txt = $_GET["myJSON"];
fwrite($myfile, $txt);

fclose($myfile);
?> 
<form>
<input type="text" name="videoName" id="videoName">Video name
<input type="text" name="videoUrl"  id="videoUrl">Video
<button type="submit" onclick="jsonFunc()">Add video</button>
</form>

_

【问题讨论】:

    标签: php json ajax


    【解决方案1】:

    假设php没有真正注释掉,问题似乎出在javascript上:

    x.open("GET", "save.php="+myJSON, true);
    

    您没有发送带有变量值的密钥。它应该是这样的:

    x.open("GET", "save.php?myJSON="+myJSON, true);
    

    请注意,您还应该对变量进行编码,以便在您的 url 中安全地用作查询变量。你可以使用encodeURIComponent()

    x.open("GET", "save.php?myJSON="+encodeURIComponent(myJSON), true);
    

    【讨论】:

    • 先生,你不会相信我,但我做到了,是的,终于把它放到我的 fork 上,由于某种原因,保存 php 中的 php get 方法没有将数据写入文本文件,我尝试了 php post 方法,你猜怎么着,我在我的数据库文件中看到了我的 json obj,我欠你一杯啤酒,非常感谢。
    • @IlhomJones 恕我直言,你首先应该让他接受正确的答案。
    • @IlhomJones 您的 GET 变量中有错字:它是 $_GET
    • 在这个迷你任务中遇到了另一个问题,是的,我之前看到的那个错字,对不起我在这里的错字,在实际脚本上没有那个错字,另一个问题是在第一个 json obj 数据写入 db 之后文本文件,第二个没有完整传递,我的意思是 db 文件正在那里保存空行,实际的用户输入没有传递到 db 文件,我在这里错过了吗?我应该添加一些代码来关闭 XML 请求吗?
    • 我的文本文件中有两行,第一行以逗号结尾的 json obj 已成功写入文本文件,但由于某种原因,您可以看到第二行是空行php 文件试图将 json obj 写入文本文件,但未成功创建一个空行,天哪,现在在这里找不到问题,,,,,这是从 db 文本文件两行的确切副本,第一行包含 json obj 和逗号, 第二行是空的 {"name":"test name","url":"uri54r"},
    猜你喜欢
    • 2016-03-13
    • 2012-04-30
    • 2012-09-27
    • 2017-08-17
    • 1970-01-01
    • 2017-10-17
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多