繁体   English   中英

传递一个复杂的PHP变量,由外部.js文件写入

[英]Passing a complex PHP variable to be written by an external .js file

大家好!

这是我在stackoverflow上的第一篇文章。 经过几个小时的搜索和试验,StackOverflow出现了很多可能的修复:我决定是时候自己提问了。 我正在构建一个Wordpress驱动的投资组合网站,用于我自己的网页设计工作。 到目前为止,我已经做了一些广泛的定制,现在我正处于最后阶段。 另请注意,我不希望直接插件支持,但我会引用正在使用的插件,它可能有所帮助。

前言:

  1. 我正在使用一个名为NextGen Gallery的插件,这个插件支持我的投资组合。 我的所有客户都有自己的画廊,我在投资组合网站上展示。
  2. 我还安装了一个名为Fancybox for Wordpress的插件。 这个插件允许我所有客户的好看的灯箱显示。
  3. 我有一个名为Custom Fields for NextGen Gallery的第三个插件,这个插件允许我添加特定于每个图库和图像的自定义字段。 你会看到我已经通过自定义字段插件添加的链接创建自定义缩略图来利用它。

所有这一切都说明了我的目标是利用自定义字段插件,添加特定于每张幻灯片的html丰富的描述文本和html富客户端标题文本。 幻灯片的顶部读取客户端名称,幻灯片下方读取带有链接的说明。 我取得了一些进展,但这里是我被困的地方......

问题:

jquery.fancybox.js不会接受由“NextGen Custom Fields”插件生成的PHP变量,因为它是在一个名为gallery-popportfolio.php(NGG的模板文件)的文件中编写的。 我对此进行了广泛的测试并得到了相同的结果。 添加了一些简单的代码位:

在gallery-popportfolio.php中我放置:

<?php $clientname = nggcf_get_gallery_field($gallery->ID, "clientnamelink"); ?>
<script type="text/javascript"> var clientname = '<?= $clientname ?>'; </script>
<script type="text/javascript" src=".../jquery.fancybox.js"></script>

在jquery.fancybox.js中我插入:(这是摘录,我添加的唯一内容是.append(clientname):

append('<div class="fancybox-bg" id="fancybox-bg-n">').append(clientname)

现在让我觉得非常有趣的是,在gallery-popportfolio.php中,如果我将$ clientname作为一个静态的东西就像一行文本。 .js文件将接受变量并将其准确放置在我需要的位置。 问题是当我将这个动态字符串应用于$ clientname变量时,它根本不呈现任何内容。 除此之外,当我用PHP文件中的复杂变量回显$ clientname时,我得到了正确的结果。

题:

我很难过,我似乎很接近但没有正确的结果。

我错过了让外部.js文件接受更复杂的php变量的步骤吗?

有可能我只需要移动我在其他地方编写的PHP代码吗?

我的下一个最佳步骤是什么?

笔记:

我正在跟随这个线程到达我现在的位置: StackOverflow线程

我的工作组合网站位于: EoghanMcInerney.com

在此先感谢您的帮助! 非常感激!

如果你的意思是“不是字符串”的复杂变量,对于$ clientname,那么你的代码将无效。

在这行代码中:

<script type="text/javascript"> var clientname = '<?= $clientname ?>'; </script>

$clientname应该是没有'字符的字符串。 我建议你把上面的代码更改为

<script type="text/javascript"> var clientname = <?= json_encode($clientname) ?>; </script>

当你追加时,你应该从clientname构造一个字符串并追加它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM