将php变量传递给jquery脚本无效

时间:2015-04-25 11:36:33

标签: javascript php jquery

我有以下jquery脚本:

<script>
        $(document).ready(function () {
            $(".clickable").click(function () {
                $(this).animate({left: '1030px'}, function () {
                    $(this).fadeOut("slow", function () {
                        document.location.href = $(this).get(0).id + ".php";
                    });
                });
            });

        });
        $(document).ready(function () {
            $("#Chi").animate({left: '0'}, {duration: 200, queue: false});
            $("#Dove").animate({left: '0'}, {duration: 400, queue: false});
            $("#Quando").animate({left: '0'}, {duration: 600, queue: false});
            $("#Cosa").animate({left: '0'}, {duration: 800, queue: false});
            var phpvariable=<? echo $row; ?>
            $('.dreams-photo-profile-mydream').css({"background": "url(\"/images/user.png\")"});
            $('.dreams-photo-profile-mydream').css({"background-repeat": "no-repeat"});
            $('.dreams-photo-profile-mydream').css({"background-position": "center"});
            $('.dreams-photo-profile-mydream').css({"background-size": "contain"});

        });

    </script>

我试图像这样传递一个php变量:

   <?php
    $gdb->connettiDB();
    $row = $gdb->getFotoProfilo(getId());
    ?>

 var phpvariable=<? echo $row; ?>

那不行。当我在脚本中声明一个var时,一切似乎都被阻止了,我的动画也没有工作,我也不知道为什么。谁能解释我怎么能完全这样做?

3 个答案:

答案 0 :(得分:1)

错误使用php: -

var phpvariable=<? echo $row; ?>

应该是

 var your_variable='<?php echo $row; ?>';

答案 1 :(得分:1)

将变量从php传递到javascript的正确方法是使用json_encode

var phpvariable=<?php echo json_encode($row); ?>;

现在,不管$row变量的类型如何,php都不会意外破坏你的javascript。这个名字就像一个数组......

如果$row是一个整数,问题也可能是由于php中缺少短标签设置引起的。这就是我在我的例子中使用<?php的原因。

最后,在javascript中变量声明后丢失;也可能会导致问题,但这取决于之后的内容。

答案 2 :(得分:0)

您需要确保包含上面发布的<script>的html位于同一个文件中。需要在$row之前定义<script>变量。

您在javascript行的末尾也遗漏了;

var phpvariable=<? echo $row; ?>;

如果$row是字符串,您还需要使用"

var phpvariable="<? echo $row; ?>";