将 php 变量传递给 jquery 脚本不起作用

Pass php variable to jquery script is not working

我有以下 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 时,一切似乎都被阻止了,我的动画不工作,我不知道为什么。谁能解释一下我该怎么做?

错误使用php:-

var phpvariable=<? echo $row; ?>

应该是

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

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

您还缺少 javascript 行末尾的 ;

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

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

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

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

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

现在 php 不会意外破坏您的 javascript,无论 $row 的变量类型如何。顾名思义,类似于数组...

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

最后,javascript 中的变量声明后缺少 ; 也可能导致问题,但这取决于它后面的内容。