2012-12-26 121 views
0

我想要做的是隻有當我點擊divid="$project['slug']"時,它會加載iframediv。 因此,我從iframe中刪除了src屬性,並將其添加到onclick事件中。 我有這個在我的HTML/PHPJavascript函數中的PHP變量輸出變量而不是值

<div class="box" id="<?=$project['slug']?>" onclick="load_frame();"> 
    <iframe id="frame_<?=$project['slug']?>" frameborder="0"></iframe> 
</div> 

Js

function load_frame() { 
    id = location.hash.replace('#', ''); 
    var source = "<?php echo $project['video']; ?>"; 
    $('#frame_'+id).attr("src", source); 
} 

不幸的是,當我檢查iframe它顯示:src="<?=$project['video']?>"而不是該變量保存價值。 你有什麼想法我做錯了什麼? 謝謝!

+2

是你使用外部js? –

+0

似乎你混合ASP和PHP的語法。更改=回顯 – mplungjan

+0

@NipunJain是的,我使用外部js。 – musicvicious

回答

2

jQuery是一種客戶端語言,一旦它們被渲染,它就只能訪問DOM元素。因此,您需要做的是在隱藏字段中存儲$project['video']變量,然後使用該字段的id訪問呈現的數據。

另外,我注意到,你應該使用的<?php代替<?

你可以試試這樣的事情。

<div class="box" id="<?php echo $project['slug']; ?>"> 
    <iframe id="frame_<?php echo $project['slug']; ?>" frameborder="0"></iframe> 
    <input type="hidden" id="<?php echo $project['slug']; ?>" value="<?php echo $project['video']" /> 
</div> 
jQuery中

然後做:

$(document).ready(function(){ 
    $('.box').click(function(){ 
     var slug = $(this).attr('id'); 
     var source = $('input#' + slug).val(); 
     $('iframe#' + slug).attr("src", source); 
    }); 
}); 
+0

oops,忘記更改iframe語句以使用'slug' var。更新! – Amyth

+0

它的工作原理,謝謝!非常感激! – musicvicious

0

您可能沒有在服務器上啓用shorthand syntax。嘗試使用標準的PHP代替:

<?php echo $project['slug']; ?> 
+0

我也試過標準的PHP,但仍然沒有。 – musicvicious

1

html頁面上添加JS隱藏輸入

<input type="hidden" id="hidsource" value="<?php echo $project['video']" /> 

編輯您的功能像這樣

function load_frame() { 
id = location.hash.replace('#', ''); 
$('#frame_'+id).attr("src", $('input#hidsource').val()); 

}

希望這會工作