簡體   English   中英

將PHP輸出傳遞給jQuery

[英]Pass PHP output to 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輸出傳遞給此函數?

在上面的.html('')輸入<?php echo($mydata)?>並不能解決任何問題。

任何原因都會導致錯誤?

感謝您的幫助!

首先,您的代碼有問題,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>

在您的JS文件中添加<?php //code?>不會執行任何操作,因為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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM