0

我有一个 config.php 文件,我在其中定义了几个变量。

我想在 jQuery 脚本中使用其中的一些变量。

我创建了一个包含以下内容的 header-js.php 文件:

<script type="text/javascript">
jQuery("#msgid1").html("Hello world.");
jQuery("#msgid1").html("Hello world again.");
global_cookie_prefix = <?php echo(global_cookie_prefix);?>;
</script>

当我运行上面的 msgid1 div 时,再次显示“Hello world”。

当我将线路交换为:

<script type="text/javascript">
jQuery("#msgid1").html("Hello world.");
global_cookie_prefix = <?php echo(global_cookie_prefix);?>;
jQuery("#msgid1").html("Hello world again.");
</script>

msgid1 div 显示“Hello world”。

似乎我定义 global_cookie_prefix 的行导致脚本中止。

我不知道如何解决这个问题。

谢谢。

4

4 回答 4

5

我敢打赌,问题在于您没有使用var关键字定义变量,和/或您的 PHP 代码段不在引号之间。尝试这个

var global_cookie_prefix = '<?php echo global_cookie_prefix; ?>';
^^^                        ^                                   ^
于 2013-09-26T20:26:40.483 回答
1

当您想将变量作为字符串传递给 JS 时,您需要告诉 JS 它是字符串:(global_cookie_prefix = '<?php echo global_cookie_prefix;?>';假设global_cookie_prefix是一个常量,在这种情况下,按照约定应该全部大写)

于 2013-09-26T20:26:37.590 回答
0

由于您的脚本实际上是一个输出 Javascript 的 PHP 脚本,因此您的脚本可能会因错误而终止,因为 global_cookie_prefix 是一个未定义的常量。如果 global_cookie_prefix 是一个变量,并且您在包含此脚本的页面上的其他位置定义了它,您可能希望通过添加“$”符号将代码更新到下面。

您还需要在 JS 中使用 'var' 关键字来避免严格模式下的错误。

<script type="text/javascript">
  jQuery("#msgid1").html("Hello world.");
  **var** global_cookie_prefix = '<?php echo(**$**global_cookie_prefix);?>';
  jQuery("#msgid1").html("Hello world again.");
</script>

我还建议检查您的 apache 错误日志以查看错误并确认您的 PHP 输出没有在该行中断。

此外,如果您启用了 error_reporting,PHP 生成的关于 global_cookie_prefix 未定义的警告肯定会破坏您的 javascript 并使其在那时失败。

如果您粘贴更多代码以提供此代码段上下文,则会更容易提供帮助。

编辑:我在 PHP 输出周围添加了单引号,因为 PHP 的字符串输出会破坏您的 JavaScript。

于 2013-09-26T20:42:31.763 回答
0

你确定 global_cookie_prefix 是一个常量(因为它不是大写的)。尝试将变量符号“$”添加到 global_cookie_prefix 以防它不是定义的常量。

<?php echo($global_cookie_prefix);?>;

你也需要在你的 javascript 中使用引号......(尝试使用和不使用 $ 取决于常量)顺便说一句,常量是大写的。

global_cookie_prefix = "<?php echo global_cookie_prefix; ?>";
于 2013-09-26T20:29:10.683 回答