2011-10-26 57 views
1

考慮下面的Jquery外部腳本片段在模態窗口創建YouTube的I幀:傳遞PHP函數jQuery的

$(function() { 

    $(document).ready(function() { 

    var myPhpVa = '<?php echo embeddable($ytid);?>'; 

    $('a[name="modal"]').click(function(e) { 

     $('<iframe width="560" height="315" src=myPhpVa frameborder="0" allowfullscreen>').appendTo('#dcontent'); 

    } 

}); 

出於某種原因,我得到找不到對象。 PHP函數聲明在這個javascript之上,聲明是:

function embeddable($ytid){ 
     return $embeddable = 'http://www.youtube.com/embed/'.$ytid; 
    } 

任何幫助傳遞這個PHP變量是非常感謝。

+0

您不需要同時使用$(document).ready(function(){})和$(function(){})。它們都是相同的 – Arda

回答

3

首先 - 分配返回值是沒用的。刪除:

function embeddable($ytid){ 
    return 'http://www.youtube.com/embed/'.$ytid; 
} 

同樣的事情有關$(document).ready(function() {$(function() { - 他們是平等的,並增加了一倍 - 刪除其中的一個。

後分配myPhpVa變量 - 寫

alert(myPhpVa); 

,並檢查它顯示你。

+0

警報給出了<?php echo embeddable()?> – George

+1

好的 - 你的文件的擴展名是什麼?它是'.html'還是'.php'?你是從PHP服務器上運行這個頁面還是直接從你的計算機上運行,​​而沒有任何Apache服務 – hsz

+0

我從JS文件調用這個PHP,我有Apache服務器運行 – George

2

我認爲你的代碼的語法附加iframe到你的html是不正確的。

$('<iframe width="560" height="315" src="' + myPhpVa + '" frameborder="0" allowfullscreen>').appendTo('#dcontent'); 
1

看起來好像你沒有突破字符串來將myPhpVa連接到js文字中。試試這個:

$('<iframe width="560" height="315" src="' + myPhpVa + '" frameborder="0" allowfullscreen>').appendTo('#dcontent'); 

如果不工作,提醒的myPhpVa值,看看它你所期望的。

+0

警報給出 George