0

是否可以通过 PHP 填充 jQuery 变量???

我的意思是这样的:

<?php
$string_php = "50%";
?>

我想用“$string”变量填充 jQuery:

var jquery_string = "$string_php";
$('.bar1').animate({'height':'jquery_string'},500);

上面的代码只是我想如何工作的想法

4

3 回答 3

3

的,但带有php 标签 <?php ?>(以便 php 知道它的代码):

var jquery_string = "<?php echo $string_php;?>";
$('.bar1').animate({'height':jquery_string}, 500); // no quotes for variables

这是可能的,因为 PHP(服务器端)在 jQuery(客户端)之前运行。该页面首先进入服务器,服务器将响应(在那里解析 php 代码)返回给浏览器。

于 2012-06-25T18:49:33.557 回答
2

当然

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);
于 2012-06-25T18:49:52.167 回答
-1

对于简单的变量,按照用户说的做。

前任 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
于 2012-06-25T18:56:00.113 回答