folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Obje Değerini Document.Write İle Almak Doğru Mu?



Obje Değerini Document.Write İle Almak Doğru Mu?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kofcu
    kofcu's avatar
    Kayıt Tarihi: 29/Ağustos/2014
    Erkek

    merhaba arkadaşlar yazdığım site içinde sürekli kullanacağım birtakım bilgiler var bunun için bu bilgileri obje haline getirdim.

    kısaca bu bilgiler şu şekilde yer alıyor obje={id1 : [gereklibilgi1,gereklibilgi2], id2 : [gereklibilgi3,gereklibilgi4], ...........}

    ben bu bilgileri çekerken document.write(obje[id1][0]) şeklinde çekiyorum bir yere kadar işimi görüyordu ama başka bir javascript kodunda elementlerle uğraşırken bu bilginin bulunduğu elementin yazı içeriğini değerin kendisi olarak değil de(yani "gereklibilgi1" değil de) aynen yazdığım "document.write(obje[id1][0])" şeklinde alıyor. bana içerde yazılı olan değer lazım. ha içinden slice ile obje gösterimini alırım tabi istesem bi şekilde değere de ulaşırım ama bir şeylerin yanlış gittiğini düşündüm. muhtemelen bir yerde bir mantık/strateji hatası yapmış olabilirim diye düşündüm, bundan dolayı tahribat ailesinin geniş bilgi hazinesine başvurdum :)

    ya objeyi baştan çekerken yanlış bir yöntem düşündüm ya da başka bir şey.

    ayrıyetten elementleri php'de echo '<script>document.write(obje[' . $id . '][0]);</script>' gibi bir şekilde oluşturuyorum bu noktada da bir problem olabilir. onu da yazmış olayım. çünkü mesela echo '<div onload="fonksiyon()"></div>' şeklinde bir element oluşturduğumda onload olayının gerçekleşmediğini fark ettim.

    çok gereksiz işlerle uğraşıyorum belki ama hoşuma gidiyor uğraşmak uğraşıyorum :)

    hatalarımı söylerseniz şimdiden teşekkür ederim...

     

    tekrar okuyunca fark ettim çok karmaşık anlatmışım:

    özetle, obje değeri en uygun şekilde nasıl html çıktısı olarak alınır?

    kofcu tarafından 29/Tem/16 17:40 tarihinde düzenlenmiştir

    ben de sevgiden yanayım...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    HTML kodu:

    <div id="cikti"></div>

    Frameworksüz JavaScript kodu:

    document.getElementById("cikti").innerHTML = obje["id"][0];

    Jquery:

    $("cikti").html(obje["id"][0]);

     

    ===========

     

    Eğer amacın sadece verinin durumunu görmek ise:

    JavaScript kodu:

    console.log(obje);

    console.log(obje["id"]);

    console.log(obje["id"][0]);

     

    Üstteki kodun çıktılarını görüntüleye bilmek için ctrl+shift+j yapıyorsun. Konsoldan veriye ait pek çok şeyi görebiliyorsun.

    Üstelik sadece kendi verilerini değil herşeyi görüntüleyebilirsin. Detaylar için mdn console, mdn console.log şeklinde aratmalısın.


    Sadece bi imza..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kofcu
    kofcu's avatar
    Kayıt Tarihi: 29/Ağustos/2014
    Erkek

    hocam şöyle örnekle açıklayayım. 2 tane tablo var. birinde kategoriler diğerinde veriler.

    veri tablosu:

    veri id veri icerik kategori

    kategori tablosu

    kategori id kategori ismi kategori türü

    normalde sql ile uygun şekilde join falan yapmam lazım biliyorum :D

    ama ben şöyle bir şey yaptım.

    tüm kategorileri her türlü tamamen çekmem gerekiyordu.

    çekerken bu kategori bu id bu tür diye de bi obje yapayım.

    bir daha inner join ile uğraşmasın server direk kategori.id olarak çeksin

    sonra javascript ile daha önce oluşturduğum objedeb onun hangi kategoride olduğunu bulurum.

    obje örneği: kategoriler{1:["ismi","türü"],2:["ismi","türü"]}

    veriyi de dedim çekerken

    veri icerik veri veri veri
    kategori(örneğin 1) kategoriler[1][0]
    türü kategoriler[1][1]

    yaparsam ok.

    ama işte o obje değerini çekerken sorun yaşadığım için buradan sorayım dedim.

    <script>document.write(kategoriler[1][0]);</script>

    şeklinde çekiyordum daha temiz yolu var mıdır diye düşündüm:

    <div onload="this.innerHTML=kategoriler[1][0]"></div>

    şeklinde denedim fakat olmadı.

    şöyle olmadı: onclick çalıştı fakat onload çalışmadı.

    bunun nedeni acaba bu fonksiyon obje oluşmadan önce mi çalıştırılıyor diye düşündüm: hayır, çünkü obje oluşturma daha önceki bir satırda yapılıyor.

    ondan dolayı acaba dedim direkt html olarak değil de bu html elemanını php içinde echo '<div onload="this.innerHTML=kategoriler[1][0]"></div>'; şeklinde oluşturduğum için mi onload çalışmıyor.

    bunca soru pek bir şey kazandırmayacak belki. beyin fırtınası niyetine düşündüm işte :)

    @PcK0 bir çok konumda cevap yazdığın için teşekkür ederim.


    ben de sevgiden yanayım...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Anladım ben senin sıkıntını. Bazı şeylere farklı görevler yüklemişsin kafanda. Farklı yorumluyorsun. Ve şimdi mobilim yazması vakit alıyor. Boşluk bulur ve unutmazsam ve de başka biri yardımcı olmamış olursa yazarım.

    Ayrıca ene kofçu konu açmış yazayım gibi bir eğilimim hiç olmadı. Can sıkıntısına binayen yazdıklarımda artış oluyor :) Ve rica ederim.

    PcK0 tarafından 29/Tem/16 22:45 tarihinde düzenlenmiştir

    Sadece bi imza..
Toplam Hit: 660 Toplam Mesaj: 4
javascript