在这个javascript代码中包含变量的正确语法是什么?

时间:2012-04-13 07:29:12

标签: php javascript jquery ajax get

我正在努力的路线是

url:"../php/loadmorecommentsuserpage.php?profilepageuserid=$profilepageuserid&lastComment="+$(".postedComment:last").attr("id"),

我想通过GET将$ profilepageuserid发送到loadmorecommentsuserpage.php,但它无法正常工作。

具体说明$ profilepageuserid所代表的值未被发送。那么语法错了吗?

$ profilepageuserid是PHP中的变量,我想通过JS发送它

<script>
    $(document).ready(function(){
        $('div#text').click(function(){
            $("div#text").hide();
            $('div#loadMoreComments').show();
            $.ajax({
                url:"../php/loadmorecommentsuserpage.php?profilepageuserid=$profilepageuserid&lastComment="+$(".postedComment:last").attr("id"),
                success:function(html){
                    if(html){
                        $("#postedComments").append(html);
                        $('div#loadMoreComments').hide();
                        $('div#text').show();
                    }else{
                        $('div#box').replaceWith("<div class='box'><center>Finished Loading the Comments</center></div>");
                    }
                }
            });
        });
    });
</script>

2 个答案:

答案 0 :(得分:3)

$(function() {

    //your variable
    //if it's from PHP, you need to echo it to a JS variable
    var profilepageuserid = '<?= $profilepageuserid ?>'

    $('div#text').on('click',function() {

        //store required data into variables
        //keeps your code readable
        var commentid = $(".postedComment:last").attr("id");

        $(this).hide();
        $('div#loadMoreComments').show();

        $.ajax({
            url:"../php/loadmorecommentsuserpage.php",

            //instead of a very long querystring, just do "data"
            data : {
                'profilepageuserid' : profilepageuserid,
                'lastComment' : commentid
            },
            success: function(html) {
                if (html) {
                    $("#postedComments").append(html);
                    $('div#loadMoreComments').hide();
                    $('div#text').show();
                } else {
                    $('div#box').replaceWith("<div class='box'><center>Finished Loading the Comments</center></div>");
                }
            }
        });
    });

});​

答案 1 :(得分:1)

好的。这就是PHP与Javascript交互的方式。简单地说,它几乎没有。 PHP由服务器运行,后者生成文本。这个文本被发送到浏览器,浏览器运行任何Javascript,抓取图像等。幸运的是,由于Javascript是该文本的一部分,我们可以将我们想要的任何数据塞进那里,包括任何服务器状态。

因此,要在客户端初始化Javascript变量(var foo)(例如,$bar的当前值),您需要将该数据填充到Javascript变量声明中。您希望客户看到的内容如下:

var foo = 3; // or whatever else, depending on $bar

因此,为了做到这一点,您需要在正确的时间echo $foo的值,包含Javascript语法:

echo "var foo = $bar;";

请记住,您只是将数据发送到客户端,以便稍后运行(或不运行)。你可以从不&#34;拉&#34;数据从浏览器返回到仍在运行的脚本。当浏览器获取数据时,脚本已经完成运行,服务器已经转移到其他有用的东西,例如枚举数据库。