【问题标题】:Using PHP to populate Javascript Variables使用 PHP 填充 Javascript 变量
【发布时间】:2020-02-10 12:35:30
【问题描述】:

我正在尝试从位于网络共享上的 csv 文件填充下拉菜单。

当文件位于wwwroot 文件夹中时,我已经尽可能地让文件成功创建所有选项,但是现在我面临外部 url 引用问题。

Ajax 不支持本地 File:/// 目录,并且在尝试使用网络共享位置时也会失败:\\Server\Folder\File.csv

有没有什么方法可以使用 php 或其他服务器端语言从 csv 文件中读取数据,以便对数据执行我的工作?

以下代码供您参考:

<script>
function SubmitBy(){
    $.ajax({
    url: encodeURI('./PrinterLookup.csv'),
    success: function(data) {

        var splitData=data.split("\n");
        for (var i = 0; i < splitData.length; i++) {
            var colData = splitData[i];
            var strucData = colData.substr(0, colData.indexOf("="));
        $('#SubmitBy').append("<option value=\"" + strucData + "\">" +
        strucData + "</option>");
}
    }
});
}
</script>

寻找这样的东西,绕过ajax url限制:

<script>
function SubmitBy(){
<?php
$Datapath = "\\Server\Folder\Document.csv";
$Data = file_get_contents($Datapath);
?>
var data = $Data;
        var splitData=data.split("\n");
        for (var i = 0; i < splitData.length; i++) {
            var colData = splitData[i];
            var strucData = colData.substr(0, colData.indexOf("="));
        $('#SubmitBy').append("<option value=\"" + strucData + "\">" +
        strucData + "</option>");
}
    }
});
}
</script>

对此的任何帮助将不胜感激。 提前谢谢你。

【问题讨论】:

  • 你能做到吗var data = &lt;?= $data; ?&gt;
  • 嗨@Jackhardcastle 不幸的是没有填充变量。关于如何找到确切的断点有什么想法吗?
  • 有人有这个更新吗?似乎以某种方式未执行 PHP 并返回 null 或空值。

标签: javascript php ajax csv


【解决方案1】:

在这一行var data = $Data;你需要打印$Data见下文

<script>
function SubmitBy(){
<?php
$Datapath = "file:///Server/Folder/Document.csv";
$Data = file_get_contents($Datapath);
?>
var data = <?php echo $Data; ?> //correction here
        var splitData=data.split("\n");
        for (var i = 0; i < splitData.length; i++) {
            var colData = splitData[i];
            var strucData = colData.substr(0, colData.indexOf("="));
        $('#SubmitBy').append("<option value=\"" + strucData + "\">" +
        strucData + "</option>");
}
    }
});
}
</script>

【讨论】:

  • 所以,我试过这个,但没有任何反应,我怀疑 URL 可能不正确?使用网络共享位置 IE。 \\Server\Folder\Document.csv 似乎没有返回值。我应该寻找 File://///Server/Folder/Document.csv 吗?
  • 尝试更新 url file:///Server/Folder/Document.csv
  • 仍然没有运气,似乎没有数据填充 php 变量..
  • 应该有var data = &lt;?php echo json_encode($data); ?&gt;;
  • 为什么 JSON 这将是 CSV 所以逗号分隔的值??
【解决方案2】:

请先检查这是 .php 文件。 如果这是 .php 文件。

<?php
  $Datapath = "\\Server\Folder\Document.csv";
  $Data = file_get_contents($Datapath);
?>
<script>
    function SubmitBy(){
    var data = <?php print_r( $data ); ?>;
            var splitData=data.split("\n");
            for (var i = 0; i < splitData.length; i++) {
                var colData = splitData[i];
                var strucData = colData.substr(0, colData.indexOf("="));
            $('#SubmitBy').append("<option value=\"" + strucData + "\">" +
            strucData + "</option>");
    }
        }
    });
    }
 </script>

【讨论】:

  • 尝试添加“print_r”函数,仍然没有将数据读入变量
  • 请说明你做了什么?
猜你喜欢
  • 1970-01-01
  • 2013-07-04
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 2016-12-28
  • 2012-03-27
相关资源
最近更新 更多