Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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
将PHP存储在Javascript中不会';在单独的文档中不工作_Javascript_Php - Fatal编程技术网

将PHP存储在Javascript中不会';在单独的文档中不工作

将PHP存储在Javascript中不会';在单独的文档中不工作,javascript,php,Javascript,Php,当我将脚本直接放在.PHP文件中时,我的脚本工作得非常好: function setup() { var setRows = <?php if(!isset($_GET['rows']))echo 3;else echo $_GET['rows']; ?>; var setColumns = <?php if(!isset($_GET['columns']))echo 3;else echo $_GET['columns']; ?>; docume

当我将脚本直接放在.PHP文件中时,我的脚本工作得非常好:

function setup()
{
    var setRows = <?php if(!isset($_GET['rows']))echo 3;else echo $_GET['rows']; ?>;
    var setColumns = <?php if(!isset($_GET['columns']))echo 3;else echo $_GET['columns']; ?>;
    document.getElementById('rows').value = setRows;
    document.getElementById('columns').value = setColumns;
    document.getElementById('rowOutputId').value = setRows;
    document.getElementById('colOutputId').value = setColumns;
}
函数设置()
{
var setRows=;
var setColumns=;
document.getElementById('rows')。value=setRows;
document.getElementById('columns')。value=setColumns;
document.getElementById('rowOutputId')。value=setRows;
document.getElementById('colOutputId')。value=setColumns;
}
但是,当我把它放在一个单独的文件中并链接它时,它会打印出文本字符串而不是正确的值。所以像这样:

<script type="text/javascript" src="js/file.js"></script>

它呼应了以下内容:

<?php if(!isset($_GET['rows']))echo 3;else echo $_GET['rows']; ?>

另外,重要的是要注意,当我将其直接放在HTML文件中时,它完美地存储了PHP,周围没有引号,但是在单独的文件中,如果我去掉引号,它会给我以下错误:


未捕获的SyntaxError:意外的令牌您的服务器根据请求的扩展来决定如何处理请求(这是一种过度简化,但现在就可以了)

您的服务器已配置为将以
.php
结尾的文件视为php文件。这意味着,当您从Apache、Nginx或您正在使用的任何Web服务器软件请求此文件时,您的Web服务器将首先请求php软件解析并执行它。当PHP软件执行第一个代码时,它将运行
之间的任何代码。然后,它会将代码执行的结果返回给Web服务器,Web服务器会将其传递回客户端

但是,当浏览器加载.js文件时,Web服务器会将其视为“普通”文件。然后,它将读取文件并直接返回给客户端,而不首先将其传递给PHP软件。因此,不会执行或解释任何内容,您将只看到文件中的所有文本


现在假设您将PHP代码放在
.js
文件中。它没有被执行,因此当浏览器从Web服务器接收到响应时,PHP代码仍然存在。然后,浏览器将尝试解析并执行文件中的javascript,但是你的
因为javascript文件不是由php解析器解释的,至少不是默认的,我想你会发现你的HTML文件实际上是一个
.php
文件,对吗?@Denno可能是对的,但是你可以配置apache以HTML扩展名编译php代码also@charlietfl我觉得这可能更像是一个问题OP可能未使用的高级用例。。但是,如果服务器是由其他人配置的,则可能是possible@Denno同意…不常见,而且是更高级的配置。我刚刚编辑了我的问题。它是一个.PHP文件。很抱歉造成混淆。没问题,我更新了答案,以考虑到这一点,并说明这会导致浏览器控制台出现错误的原因。如果这是您问题的答案,请使用答案旁边的复选标记将其标记为答案。