0

私がやりたいことは、divwithをクリックしたときだけ、その中をid="$project['slug']"ロードすることです。そのため、属性を から削除し、イベントに追加しました。私はこれを持っています:iframedivsrciframeonclickHTML/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']?>"私が間違っていることを知っていますか?ありがとう!

4

3 に答える 3

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);
    });
});
于 2012-12-26T11:12:42.520 に答える
1

HTMLページに非表示の入力を追加

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

このようにjsで関数を編集します

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

}

これがうまくいくことを願っています

于 2012-12-26T11:21:20.860 に答える
0

サーバーで短縮構文が有効になっていない可能性があります。代わりに標準の PHP を試してください。

<?php echo $project['slug']; ?>
于 2012-12-26T11:12:14.447 に答える