v2.5.2
Giriş yap

Jquery sorusu - seçime bağlı ikinci değişiklik

rephp7
441 defa görüntülendi

Merhaba,
Youtube benzeri bir sayfa oluşturdum. Bilgileri veritabanıma kaydediyorum, ordan çekiyorum.
Sağda liste yer alıyor solda ise o listeden seçilen başlığa göre video iframe yer alıyor.

Değişen Video iframe:

<div class="container">
    <div class="video-container">
        <iframe src="https://open.spotify.com/embed/episode/<?= $yayingetir[0]["episode"]; ?>" width="100%" height="232" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"></iframe>
    </div>
</div>

//Aşağıdaki div içindeki açıklamada yukardaki episode göre değişsin istiyorum
<div class="card-body card bg-warning">
    <p class="text text-justify">
        <?= $yayingetir[0]["description"]; ?>
    </p>
 </div>

Tablodan seçim yaptığım kodlar:

<td>
    <span style="cursor:pointer;margin-bottom:10px;" onclick="switchVideo('<?= $yayingetir[$i]['episode']; ?>');">
        <div class="col-xs-12" id="vid-<?= $yayingetir[$i]['episode']; ?>">
            <?= $yayingetir[$i]["baslik"]; ?>
        </div>
    </span>
</td>

Buda scriptim


    $("#vid-<?= $yayingetir[0]["episode"] ?>").addClass('selected');

    function switchVideo(videoId) {
        $(".video-container iframe").attr('src', 'https://open.spotify.com/embed/episode/' + videoId + '?utm_source=generator');
        $(".selected").removeClass('selected');
        $("#vid-" + videoId).addClass('selected');
    }

Bu kodlarla iframe içinden podcastin episodunu değiştiriyorum.
Fakat altına seçilen episoda bağlı olan video açıklamasını da getirmeye çalıştım ama yapamadım onu nasıl yapabilirim?

Cevap yaz
Cevaplar (4)
rephp7
878 gün önce

Bir çözüme ihtiyacım var, işlemim yarım kaldı ilerleyemiyorum.

rephp7
880 gün önce

@tayfunerbilen hocam,
ben veritabanımda spotify episode id bilgisini, title ve descriptionı tutuyorum.
veritabanıma (yayınlarim tablomda) elle bilgi girişim var.

yukardaki işlemde kendi veritabanımdan başlıklarımı tabloya çekiyor, baslığa tıklandıkça videoid olarak iframe linkini değiştiriyorum. bu değişiklikle alttaki divin içinde yer alan description bilgisini değiştiremiyorum.
description bilgimde veritabanımda elle giriş olarak zaten var.
<?= $yayingetir[$i]["description"]; ?>

sadece podcast değişikliğinde (onclick ile) aynı anda o id ye bağlı kaydettiğim description da değişmeli.

tayfunerbilen
880 gün önce

iframe içeriğine ulaşmak için jquery'de .contents() metodunu kullanabilirsin ama güvenlikten dolayı büyük ihtimalle erişmen mümkün değil dolayısı ile istediğin şeyde bu aşamada pek mümkün görünmüyor :)

Çünkü iframe'i yeni bir url'le değiştirmek farklı şey, o çerçevenin içinden değer almak bambaşka. Eskiden tarayıcılar izin veriyordu ama artık muhtemelen vermiyordur.

Denemesi bedava tabi ki şu kodu deneyebilirsin

function switchVideo(videoId) {
    $(".video-container iframe").attr('src', 'https://open.spotify.com/embed/episode/' + videoId + '?utm_source=generator');
    $(".selected").removeClass('selected');
    $("#vid-" + videoId).addClass('selected');
    
    // iframe içinden <title> değerini almaya çalışır
    const title = $(".video-container iframe").contents().find('title').html()
} 

muhtemelen tarayıcı bunu neden yapamayacağını daha net söyleyecektir console'da.

rephp7
880 gün önce

Yardımcı olabilecek kimse yok mu?
spotify api, işlemi var ama onu kullanmak istemiyorum.
bu şekilde benim için daha işlevsel olacak.
Ama onclick ile episode değişiyor fakat açıklamayı değiştşrmeyi nasıl yapacağım bilemiyorum.