Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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_Javascript_Html Table - Fatal编程技术网

将.json文件加载到变量javascript

将.json文件加载到变量javascript,javascript,html-table,Javascript,Html Table,我创建了一个PHP程序,可以在我的计算机上加载一个随机的.json文件。当我选择要显示的文件时,我从所选的.json文件中获取数据。开始时,我使用了一个默认文件,并用一个变量替换了它。以下是PHP代码: <?php $uploaddir = 'uploads/'; $uploadfile = $uploaddir . basename($_FILES['file']['name']); $file_test = explode('.', $_FILES['file']['name'])

我创建了一个PHP程序,可以在我的计算机上加载一个随机的.json文件。当我选择要显示的文件时,我从所选的.json文件中获取数据。开始时,我使用了一个默认文件,并用一个变量替换了它。以下是PHP代码:

<?php

$uploaddir = 'uploads/';

$uploadfile = $uploaddir . basename($_FILES['file']['name']);
$file_test = explode('.', $_FILES['file']['name']);
$file_ext= strtolower(end($file_test));

$expensions = array(".json");

        if(in_array($file_ext,$expensions)=== false){
            $errors[]="extension not allowed, please choose a DBC or an XML file.";
        }

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
    echo "<div style='font-size: 150%;'>". "File is valid, and was successfully uploaded.\n"."</div>";

} else {
    echo "<div style='font-size: 150%;'>". "Oops, It seems you haven't uploaded a file ! Please make sure you have selected a .json file\n "."</div> <br>";
    echo "<div style='font-size: 150%;'>". "Returning to Home...\n "."</div>";
    header("Refresh: 3,URL=upload_file.php");
    exit();
}

echo basename($_FILES['file']['name']);

?>

<?php 

header("Refresh: 2,URL=json_content_extended.php?filename=".$uploadfile);
exit();

?>
这就是我在下面的javascript示例之前所做的。我在javascript中重新创建了与上面相同的示例,其中加载了一个default.json文件

我已经手动输入了文件名,但我想更改它,以便加载所需的文件。 这是我的密码:

$(document).ready(function() {
    $.getJSON("file.json", function(json) {
        var tr;
        for (var i = 0; i < json.messages.length; i++) {
            var details = json.messages[i];
            for (var j = 0; j <= details.signals.length; j++) {
                tr = $('<tr/>');
                tr.append("<td>" + details.signals[j].start_bit + "</td>");
                tr.append("<td>" + details.signals[j].comment + "</td>");
                tr.append("<td>" + details.signals[j].bit_length + "</td>");
                tr.append("<td>" + details.signals[j].factor + "</td>");
                tr.append("<td>" + details.signals[j].offset + "</td>");
                tr.append("<td>" + details.signals[j].is_big_endian + "</td>");
                tr.append("<td>" + details.signals[j].is_signed + "</td>");
                tr.append("<td>" + details.signals[j].name + "</td>");
                $('#table_1').append(tr);
            }
        }
    });
}); 
$(文档).ready(函数(){
$.getJSON(“file.json”,函数(json){
var-tr;
for(var i=0;i对于(var j=0;j是)。您可以将前三行更改为:

const filename = prompt("The file name of the JSON file to load:")
$(document).ready(function() {
$.getJSON("file.json", function(json) {
一个更好的用户界面应该是一个带有文本输入的HTML表单,并将匿名函数绑定到相关按钮的点击上,而不是绑定到
$(文档).ready
。请注意,您没有说表单向您的服务器提交任何请求。
$。getJSON
负责从您的服务器下载JSON文件。

可以:

$(document).ready(function() {
    var filename = 'file.json';
    $.getJSON(filename, function(json) {
        var tr;
        for (var i = 0; i < json.messages.length; i++) {
            var details = json.messages[i];
            for (var j = 0; j <= details.signals.length; j++) {
                tr = $('<tr/>');
                tr.append("<td>" + details.signals[j].start_bit + "</td>");
                tr.append("<td>" + details.signals[j].comment + "</td>");
                tr.append("<td>" + details.signals[j].bit_length + "</td>");
                tr.append("<td>" + details.signals[j].factor + "</td>");
                tr.append("<td>" + details.signals[j].offset + "</td>");
                tr.append("<td>" + details.signals[j].is_big_endian + "</td>");
                tr.append("<td>" + details.signals[j].is_signed + "</td>");
                tr.append("<td>" + details.signals[j].name + "</td>");
                $('#table_1').append(tr);
            }
        }
    });
});
$(文档).ready(函数(){
var filename='file.json';
$.getJSON(文件名、函数(json){
var-tr;
for(var i=0;i对于(var j=0;j为fileName is javascript创建一个变量,用您的首选语言加载该变量,然后使用它:

$(document).ready(function() {
    var myFile = 'mydynamicfile.json';
    $.getJSON(myFile, function(json) {
        var tr;
        for (var i = 0; i < json.messages.length; i++) {
            var details = json.messages[i];
            for (var j = 0; j <= details.signals.length; j++) {
                tr = $('<tr/>');
                tr.append("<td>" + details.signals[j].start_bit + "</td>");
                tr.append("<td>" + details.signals[j].comment + "</td>");
                tr.append("<td>" + details.signals[j].bit_length + "</td>");
                tr.append("<td>" + details.signals[j].factor + "</td>");
                tr.append("<td>" + details.signals[j].offset + "</td>");
                tr.append("<td>" + details.signals[j].is_big_endian + "</td>");
                tr.append("<td>" + details.signals[j].is_signed + "</td>");
                tr.append("<td>" + details.signals[j].name + "</td>");
                $('#table_1').append(tr);
            }
        }
    });
});
$(文档).ready(函数(){
var myFile='mydynamicfile.json';
$.getJSON(我的文件,函数(json){
var-tr;
for(var i=0;i对于(var j=0;j为什么不呢?你试过在那里放一个变量吗?是的,我放了,它不起作用,所以我们可以告诉我们为什么它不起作用。特别是,告诉我们你得到了什么错误。你确定你试图加载的JSON文件可以从你的HTTP服务器获得吗?@Quentin我修改了我的postGood答案,尽管得到了文件名在启动$.getJSON()之前从用户函数将是一个更好的方法。答案为+1。那么最好的方法是创建一个模式。在该模式中,有一个表单,用户可以在其中输入文件名。提交表单时,防止表单的默认行为,并调用一个函数,以文件名作为参数执行上述计算,这将是非常好的。即使不是,也可以在下面给出的另一个答案中,使用JavaScript提示符()方法也会起作用。我通过添加@Bjartur Thorlacius answer中的代码编辑了我的答案。如果是我的答案解决了您的问题,请不要忘记接受我的答案。虽然此代码片段可能解决了问题,但确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而那些我不知道你的代码建议的原因。
$(document).ready(function() {
    var filename = 'file.json';
    $.getJSON(filename, function(json) {
        var tr;
        for (var i = 0; i < json.messages.length; i++) {
            var details = json.messages[i];
            for (var j = 0; j <= details.signals.length; j++) {
                tr = $('<tr/>');
                tr.append("<td>" + details.signals[j].start_bit + "</td>");
                tr.append("<td>" + details.signals[j].comment + "</td>");
                tr.append("<td>" + details.signals[j].bit_length + "</td>");
                tr.append("<td>" + details.signals[j].factor + "</td>");
                tr.append("<td>" + details.signals[j].offset + "</td>");
                tr.append("<td>" + details.signals[j].is_big_endian + "</td>");
                tr.append("<td>" + details.signals[j].is_signed + "</td>");
                tr.append("<td>" + details.signals[j].name + "</td>");
                $('#table_1').append(tr);
            }
        }
    });
});
$(document).ready(function() {
    var filename = prompt("The file name of the JSON file to load:")
    $.getJSON(filename, function(json) {
        var tr;
        for (var i = 0; i < json.messages.length; i++) {
            var details = json.messages[i];
            for (var j = 0; j <= details.signals.length; j++) {
                tr = $('<tr/>');
                tr.append("<td>" + details.signals[j].start_bit + "</td>");
                tr.append("<td>" + details.signals[j].comment + "</td>");
                tr.append("<td>" + details.signals[j].bit_length + "</td>");
                tr.append("<td>" + details.signals[j].factor + "</td>");
                tr.append("<td>" + details.signals[j].offset + "</td>");
                tr.append("<td>" + details.signals[j].is_big_endian + "</td>");
                tr.append("<td>" + details.signals[j].is_signed + "</td>");
                tr.append("<td>" + details.signals[j].name + "</td>");
                $('#table_1').append(tr);
            }
        }
    });
});
$(document).ready(function() {
    var myFile = 'mydynamicfile.json';
    $.getJSON(myFile, function(json) {
        var tr;
        for (var i = 0; i < json.messages.length; i++) {
            var details = json.messages[i];
            for (var j = 0; j <= details.signals.length; j++) {
                tr = $('<tr/>');
                tr.append("<td>" + details.signals[j].start_bit + "</td>");
                tr.append("<td>" + details.signals[j].comment + "</td>");
                tr.append("<td>" + details.signals[j].bit_length + "</td>");
                tr.append("<td>" + details.signals[j].factor + "</td>");
                tr.append("<td>" + details.signals[j].offset + "</td>");
                tr.append("<td>" + details.signals[j].is_big_endian + "</td>");
                tr.append("<td>" + details.signals[j].is_signed + "</td>");
                tr.append("<td>" + details.signals[j].name + "</td>");
                $('#table_1').append(tr);
            }
        }
    });
});