2011-02-25 41 views
1

我有這個代碼通行證PHP輸出到jQuery的

/* Popup for hot news */ 
    $(document).ready(function() { 
     var $dialog = $('<div></div>') 
      .html('text to be shown') 
      .dialog({ 
       autoOpen: false, 
       title: 'Table' 
      }); 

此代碼是在被header.php包括我的JavaScript文件。 如何將PHP輸出傳遞給此函數?

上面輸入<?php echo($mydata)?>.html('')以上並沒有解決任何問題。

爲什麼會出現此錯誤的任何原因?

感謝您的幫助!

+0

是什麼'$ mydata'包含哪些內容?這是給出正確答案的必要條件 –

+0

@Pekka:謝謝你的解釋。 –

回答

2

首先你的代碼有一些問題,php中的$是變量的前綴,jQuery中的$ $是一個選擇符號。您可以在瀏覽器上查看html源代碼(輸出)以進行調試。

我能想到的三種方式來做到這一點:

(1)你所提到的應該工作,請參見下面

代碼的方式
<?php $foo='hi'?> 
<script> 
alert("<?php echo $foo?>"); 
</script> 

(2)另一種方式是單獨的服務器端和客戶端的滑動代碼顯然更好的維護

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
<?php echo"<div id='foo' style='visibility:hidden;'>HI</div>"?> 
<script> 
alert($('#foo').text()); 
</script> 

(3)最後的方法是通過從URL傳遞變量http://example.com/example.php#hi

<script> 
var foo= location.href.split('#')[1]; 
alert(foo); 
</script> 
1

<?php //code?>添加到您的JS文件中什麼也不做,因爲JS文件不是由Apache執行的。您可以使用Ajax在頁面加載後請求數據(如果數據不需要在開始時存在),也可以將這些PHP代碼塊添加到HTML代碼中。

使用Ajax(在你的JS文件雲)

$(document).ready(function(){ 
    var u = 'data.php'; 
    var d = {};//data 
    $.get(u, d, function(data){ 
    //got by data. lets invoke some methods here 
    }); 
}); 

把它在你的HTML(HTML文件中去)

var __DATA = '<?php //output some data I prepared earlier ?>'; 
//I'm using __ and capitol case to denote a global variable. Just personal preference 
<script src='myjsfile.js' type='text/javascript'></script> 
//the variable __DATA is available to your JS file and you can use it