我有一个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的行导致脚本中止。
我对如何解决这个问题感到茫然。
Thaks。
答案 0 :(得分:5)
我敢打赌,问题在于您没有使用var
关键字定义变量,和/或您的PHP代码段不在引号之间。试试这个
var global_cookie_prefix = '<?php echo global_cookie_prefix; ?>';
^^^ ^ ^
答案 1 :(得分:1)
由于你想把变量作为字符串传递给JS,你需要告诉JS它的字符串:global_cookie_prefix = '<?php echo global_cookie_prefix;?>';
(假设global_cookie_prefix
是一个常量,在这种情况下它应该按惯例全部大写)
答案 2 :(得分:0)
你确定global_cookie_prefix是一个常量(因为它不是大写的)。尝试将变量符号'$'添加到global_cookie_prefix,以防它不是已定义的常量。
<?php echo($global_cookie_prefix);?>;
你的javascript中也需要引号...(尝试使用和不使用$取决于常量或不使用)btw by convention常量是大写的。
global_cookie_prefix = "<?php echo global_cookie_prefix; ?>";
答案 3 :(得分: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。