Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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
如何在外部Javascript中使用PHP变量_Javascript_Php_Jquery_Html_Arrays - Fatal编程技术网

如何在外部Javascript中使用PHP变量

如何在外部Javascript中使用PHP变量,javascript,php,jquery,html,arrays,Javascript,Php,Jquery,Html,Arrays,我正在尝试在外部javaScript中使用PHP创建的数组。我有PHP代码,根据url提供的用户ID将目录中的图像放入数组,我希望能够在javaScript中使用此数组,以便创建照片幻灯片,并根据用户ID更改图像。我认为这是可以实现的,因为我已经在网上进行了研究,但不知何故,这对我来说并不适用。我不确定我做错了什么 在html的开头,我有一些代码要添加到外部javaScript中,并用javaScript声明变量/数组。不确定它是否正确,我从以下解决方案之一获得: <script src=

我正在尝试在外部javaScript中使用PHP创建的数组。我有PHP代码,根据url提供的用户ID将目录中的图像放入数组,我希望能够在javaScript中使用此数组,以便创建照片幻灯片,并根据用户ID更改图像。我认为这是可以实现的,因为我已经在网上进行了研究,但不知何故,这对我来说并不适用。我不确定我做错了什么

在html的开头,我有一些代码要添加到外部javaScript中,并用javaScript声明变量/数组。不确定它是否正确,我从以下解决方案之一获得:

<script src="js/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">var userphoto = "<?= $galleryarray ?>";</script>
    <script type="text/javascript">var userid = "<?= $user_id ?>";</script>
    <script src="javascript.js"></script>

var userphoto=“”;
var userid=“”;
以下是我的基本HTML中的PHP代码:

下面是我的外部JavaScript代码:

$(文档).ready(函数(){

var光电显示=
[
$(“照片1”),
$(“照片2”),
$(“照片3”),
$(“照片4”),
$(“照片5”),
];
var userid=”“;//获取php变量
var userphoto=“”;
//用户1的图像列表
/*var userphoto=新数组();
userphoto[0]=“Photos/1/1.jpg”;
userphoto[1]=“Photos/1/2.jpg”;
userphoto[2]=“Photos/1/1.jpg”;
userphoto[3]=“Photos/1/1.jpg”;
userphoto[4]=“Photos/1/1.jpg”*/
//预加载照片
函数预加载照片(){

对于(var x=0;x,让您的PHP在
标记中定义变量,如下所示

<script>
    var userid = "<?php echo json_encode($user_id); ?>";
    var userphoto = "<?php echo json_encode(galleryarray); ?>";
</script>

var userid=“”;
var userphoto=“”;

接下来的外部javascript文件将能够使用userid和userphoto变量,即使在下面的代码中没有直接在外部文件中定义它们userphoto&userid现在是javascript变量

<script src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">var userphoto = "<?= $galleryarray ?>";</script>
<script type="text/javascript">var userid = "<?= $user_id ?>";</script>
<script src="javascript.js"></script>

var userphoto=“”;
var userid=“”;
Php代码不会在外部javascript文件中执行 userid将是一个字符串,其值为“<?php echo json_encode($user_id);?>”,与userphoto类似

var userid = "<?php echo json_encode($user_id); ?>";  // getting php variable 
var userphoto = "<?php echo json_encode(galleryarray); ?>";
var userid=”“;//获取php变量
var userphoto=“”;
将基本HTML修改为

<script src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">var userphoto = <?php echo json_encode(galleryarray); ?>;     </script>
<script type="text/javascript">var userid = <?php echo json_encode($user_id); ?>;</script>
<script src="javascript.js"></script>

var userphoto=;
var userid=;

您可以在外部javascript文件中使用这些变量,前提是在分配这些变量后加载这些变量。因此,您无需再次在外部javascript中分配这些变量。

只需将名为javascript.js的文件重命名为javascript.php,并将脚本标记更改为

更新 您还可以使用.htaccess在.htaccess文件中执行以下操作,以保持javascript.js在脚本标记中的状态:

RewriteRule ^javascript\.js$ javascript.php 
有关在这种情况下使用.htaccess的更多详细信息,请查看 以下是问题的答案:


在将javascript文件发送到客户端之前,您的Web服务器不太可能配置为通过PHP解释器运行javascript文件,因此PHP永远不会执行/评估。我建议最好使用javascript中的AJAX调用获取数据,而不是编写内联PHP。我对编码还不熟悉,所以有点困惑于你在说。我认为PHP如果执行时与用户id和数组相呼应。嗨,2 var galleryarray=new array();galleryarray[0]=“Lighthouse.jpg”;galleryarray[1]=“Koala.jpg”;galleryarray[2]=“1.jpg”;galleryarray[3]=“2.jpg”;galleryarray[4]=“jellyish.jpg”;不确定为什么我为问题提供的PHP代码没有显示。非常感谢您的回复!我已经更改了代码,但它仍然显示一个损坏的图像,而不是目录中的图像。我不确定如何修复此问题,或者为什么它是一个损坏的图像。您有什么想法吗?谢谢!您可以提供更多有关它的详细信息,或者可以开始一个新的解决方案吗新讨论?您好,我已经提供了我之前的一篇文章的链接,其中显示了PHP代码。由于某些原因,该代码不会显示在本文中。请参阅我对劳埃德银行的评论。谢谢:)这是一个糟糕的做法——你可以通过这样做将JS和PHP混合在一起,但使用MIME类型可以更优雅地实现。基本上允许你在JS文件中编写PHP。
RewriteRule ^javascript\.js$ javascript.php