2012-04-13 38 views
0

我正在reffering的線是在這個JavaScript代碼中包含變量的正確語法是什麼?

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> 
+0

什麼是不工作?如果您不清楚需要解決的問題,我們無法幫助您。 – 2012-04-13 07:30:58

+2

你有沒有試過<? echo $ profilepageuserid?>? – GillesC 2012-04-13 07:31:27

+1

是'$ profilepageuserid'在JS或PHP中的變量? – Joseph 2012-04-13 07:33:00

回答

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

你應該通過迴應它來使頁面以某種方式存在於頁面中。 ''是'echo'的縮寫。 – Joseph 2012-04-13 07:42:08

1

好了送它。這就是PHP與Javascript交互的方式。簡而言之,它幾乎沒有。 PHP由服務器運行,該服務器生成文本。這段文本被髮送到瀏覽器,該瀏覽器運行任何Javascript,抓取圖片等。謝天謝地,由於Javascript是該文本的一部分,我們可以將我們想要的任何數據塞進那裏,包括任何服務器狀態。

因此,要在客戶端(例如,當前值爲$bar)初始化JavaScript變量(var foo),您需要將該數據填充到Javascript變量聲明中。你要什麼,客戶端看到的是如下:

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

所以爲了做到這一點,你需要echo$foo在正確的時間值,由JavaScript語法包圍:

echo "var foo = $bar;"; 

請記住,您只是將數據發送到客戶端,稍後再運行(或不運行)。您可以從從不將數據從瀏覽器「拉」回到仍在運行的腳本。在瀏覽器獲取數據時,腳本已經完成運行,並且服務器已轉移到其他有用的東西上,例如枚舉數據庫。

相關問題