Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何从一个用户那里获取输入的数据,该用户被JSON解析为一个Javascript文件,该文件已经加载了另一组JSON数据?_Javascript_Jquery_Html_Json_Parsing - Fatal编程技术网

我如何从一个用户那里获取输入的数据,该用户被JSON解析为一个Javascript文件,该文件已经加载了另一组JSON数据?

我如何从一个用户那里获取输入的数据,该用户被JSON解析为一个Javascript文件,该文件已经加载了另一组JSON数据?,javascript,jquery,html,json,parsing,Javascript,Jquery,Html,Json,Parsing,我正在尝试制作一个小的抽认卡游戏,它允许用户通过HTML通过字段输入自己的问题和答案来定制一组抽认卡。我一直在思考如何将这些数据链接到一个实际运行flashcard游戏的javascript文件。运行游戏的javascript文件已经准备好了,有一组默认的JSON数据链接到特定的javascript文件。我将如何交换这些JSON数据集,以便用户使用带有他们创建的问题和答案的抽认卡 以下是一些视觉效果和代码,可帮助您了解此处发生的情况: 显示用户可以在何处输入自己的问题和答案 然后,用户可以单击

我正在尝试制作一个小的抽认卡游戏,它允许用户通过HTML通过
字段输入自己的问题和答案来定制一组抽认卡。我一直在思考如何将这些数据链接到一个实际运行flashcard游戏的javascript文件。运行游戏的javascript文件已经准备好了,有一组默认的JSON数据链接到特定的javascript文件。我将如何交换这些JSON数据集,以便用户使用带有他们创建的问题和答案的抽认卡

以下是一些视觉效果和代码,可帮助您了解此处发生的情况:

显示用户可以在何处输入自己的问题和答案

然后,用户可以单击“创建抽认卡”按钮,标签中的数据将解析为JSON,如下所示:

我有一个名为flashcards.js的文件,它已经有一组默认的flashcard数据,这些数据是从JSON文件加载的。以下是执行此操作的代码:

var jsonUrl = "questionsAndAnswersItalian.json";
var cardIndex = 0;
var qs;
var numCards;
var maxIndex;
var isFlipped = 0;
var colorIndex = 0;
var colorClasses = ['c0','c1','c2','c3'];

(a bunch of code to make the game work in between)

function init() {
    $.getJSON(jsonUrl, function(jsonObject) {
        qs = jsonObject;
        numCards = qs.length;
        maxIndex = numCards-1;
        displayCard();
    });
}
function displayCard() {
    $("#card").fadeOut(400,function(){
        colorIndex = getRandomInteger(0,3);
        $("#card").addClass(colorClasses[colorIndex])
        isFlipped = 0;
        var newHtml = "<h2>Question Words</h2>";
        newHtml += qs[cardIndex]["q"];
        document.getElementById("question").innerHTML = newHtml;
    }).fadeIn(400);
}
如果你需要更多的信息来帮助理解这里发生了什么,请不要犹豫

如有任何意见、帮助或建议,将不胜感激


谢谢

您可以将问题推送到html页面url上的GET参数。这将允许用户在没有集中服务器的情况下创建和共享,但也将问题的总文本长度限制在4kb左右。在某些情况下,您可以使用TinyURL来解决这个问题,但较旧的浏览器和代理无法配合……您需要一个后端进程来保存
json
文件数据。JS无法保存它,因为它在客户端本地运行。如果用户只需要与数据交互…可以使用localStorage。使用
JSON.stringify(array)
存储,使用
JSON.parse
返回数组retrieving@dandavis你能更详细地解释一下我是如何做到这一点的吗?谢谢。例如,如果所有用户创建的问题都在同一表单位置上。hash=$(form.serialize();在ready中,查看location.hash,如果存在,则解析它并恢复表单值,或者像使用getJSON一样直接将其提供给问题接口。您可以使用JSON代替serialize(),或者将两者转换为JSON;我相信有很多jQuery插件可以实现这一点。
var jsonUrl = "questionsAndAnswersItalian.json";