是否可以通过 PHP 填充 jQuery 变量???
我的意思是这样的:
<?php
$string_php = "50%";
?>
我想用“$string”变量填充 jQuery:
var jquery_string = "$string_php";
$('.bar1').animate({'height':'jquery_string'},500);
上面的代码只是我想如何工作的想法
是的,但带有php 标签 <?php ?>
(以便 php 知道它的代码):
var jquery_string = "<?php echo $string_php;?>";
$('.bar1').animate({'height':jquery_string}, 500); // no quotes for variables
这是可能的,因为 PHP(服务器端)在 jQuery(客户端)之前运行。该页面首先进入服务器,服务器将响应(在那里解析 php 代码)返回给浏览器。
当然
var jquery_string = "<?php echo $string_php;?>";
由于 PHP 首先在服务器上进行处理,然后将结果发送到用户的浏览器,所以这很容易,而且经常这样做。
上面的代码将导致:
var jquery_string = "50%";
但是,您想修改第二行,从变量中删除引号,因此它是:
$('.bar1').animate({'height':jquery_string},500);
因为保留引号jquery_string
会强制将其解释为字符串,而您需要一个变量。
最终结果将相当于:
$('.bar1').animate({'height':'50%'},500);
对于简单的变量,按照用户说的做。
前任 var jquery_string = "<?php echo $string_php;?>";
(取自@Blaster 的解决方案)。换句话说:
最简单的解决方案是在我们定义变量的任何地方通过 echo输出我们打算用作字符串文字的 php 变量。
但是:正确的方法是每次我们使用服务器端变量作为 Javascript 字符串时,都应该对其进行编码,因为当出现双引号时,上述解决方案将失败。这里json_encode
可能会派上用场。
var jquery_string = <?php echo json_encode($var); ?>;
我们希望 Javascript 提醒字符串"Hey", dude!
$string = "\"Hey\", dude!";
echo "alert(\"" . $string . "\");";
结果是:
alert(""Hey", dude!"); <--- will give Javascript error
反而:
echo "alert(" . json_encode($string) . ");";
结果是:
alert("\"Hey\", dude!"); <---- correct JS code