0

私が参照している行は

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

$ profilepageuseridをGET経由で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>
4

2 に答える 2

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>");
                }
            }
        });
    });

});​
于 2012-04-13T07:35:57.223 に答える
1

大丈夫。これは、PHPがJavascriptと対話する方法です。簡単に言えば、それはほとんどありません。PHPは、テキストを生成するサーバーによって実行されます。このテキストはブラウザに送信され、Javascriptを実行したり、画像を取得したりします。ありがたいことに、Javascriptはそのテキストの一部であるため、サーバーの状態を含め、必要なデータをそこに詰め込むことができます。

したがってvar foo、クライアント側でJavascript変数()を初期化するには(たとえば、の現在の値$bar)、そのデータをJavascript変数宣言に詰め込む必要があります。クライアントに表示してほしいものは次のとおりです。

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

したがって、これを行うには、Javascript構文で囲まれた正しい時刻echoの値を取得する必要があります。$foo

echo "var foo = $bar;";

後で実行する(または実行しない)ために、単にデータをクライアントに送信しているだけであることを忘れないでください。ブラウザからまだ実行中のスクリプトにデータを「プル」することはできません。ブラウザがデータを取得するまでに、スクリプトの実行が終了し、サーバーはデータベースの列挙など、他の便利な機能に移行しました。

于 2012-04-13T07:42:37.673 に答える