javascript - 外部 javascript 文件中的 PHP 导致它无法加载

标签 javascript php

正如标题所言。我的 index.php 文件中最初有很多 javascript,当我试图将它放入外部 js 文件并像加载其他 js 文件一样加载它时,该文件没有加载。当我在编辑器中查看 js 文件时,每次出现 php 代码时都会显示错误。我该如何解决这个问题?

  1. 我已尝试将其重命名为 php 文件,但没有成功(我到处都遇到错误)。

  2. 我之所以有 php 代码,是因为有很多“if”语句检查有关登录用户的不同内容,例如<?php if (Auth::instance()->current_user()): ?> .我还根据不同的事件添加和更新 mysql 表,例如点击一个按钮。

  3. 如果我直接在 index.php 文件的标签中添加代码,一切正常。

  4. 当我从 js 文件中删除 php 时,外部文件可以以 .js 和 .php 形式工作(这并不奇怪)。

谢谢

最佳答案

你想要做的是拥有不含任何 php 代码的 js 文件。

然后在 php 中,创建一个 javascript 如下:

<html>

<head>
<script>
var env = {'current_user':JSON.parse(<?=json_encode(Auth::instance()->current_user())?>), 'foo':'bar'}
console.log(env); //remove this before deploying in production
</script>
</script type='text/javascript' src='yourscript.js'></script>
<!--  other scripts here -->
</head>
...

现在您可以在所有脚本中使用全局 env 变量来访问您的用户信息(查看控制台了解详情:F12 - 控制台选项卡,然后重新加载。)

env.current_user 中,您将拥有所有用户信息。

请注意,您可能需要对其进行过滤,因为在此示例中,任何已知用户都可以在客户端访问其信息。

关于javascript - 外部 javascript 文件中的 PHP 导致它无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23122188/

相关文章:

php - 在fpdf中显示具有存储在数据库中的样式的html标签

javascript - 数据表单元格值仅在刷新页面时更新

javascript - 如何在 javascript、css 中更改计时器的外观?

javascript - 我如何用颜色填充SVG

javascript - 如何访问 <canvas> 中的 DOM 元素?

php - 使用 PaymentIntents API 将产品添加到付款

javascript - else if 语句不起作用

javascript - 如何用mysql数据填充Charts.js?

php - 在这种情况下,只有 `namespace` 是什么意思?

php - 如何处理巨大的表格