• 15-01-2023, 22:53:15
    #1
    Üyeliği durduruldu
    merhaba arkadaşlar internetten araştırdıgım ile sayfa yenilenmeden title değiştirmek istiyorum değişti fakat en üsteki idyi çekiyor sadece
    benim yapmak istediğim hangisine tıklandıysa onu çekmek yardımcı olur musunuz?
    <script type="text/javascript">
     const element = document.getElementById("myBtn");
    element.addEventListener("click", setTitle);
            function setTitle( text ) {
                document.title = '<?php echo $resimcek['resim_ad'] ?>';
            }
        </script>
    <a id="myBtn" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    <title id="demo"></title>
  • 15-01-2023, 23:46:43
    #2
    <a id="id1" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    <a id="id2" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    <a id="id3" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    veya

    for ($i = 1; $i <= 3; $i++) {
        echo '<a id="id'.$i.'" onclick="change(/seo/'.$cekresim['resim_seo'].')">deneme</a>';
    }
    $('#id1,#id2,#id3').addEventListener("click", setTitle);
  • 16-01-2023, 00:09:49
    #3
    Üyeliği durduruldu
    Mehmetmasa adlı üyeden alıntı: mesajı görüntüle
    <a id="id1" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    <a id="id2" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    <a id="id3" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    veya

    for ($i = 1; $i <= 3; $i++) {
        echo '<a id="id'.$i.'" onclick="change(/seo/'.$cekresim['resim_seo'].')">deneme</a>';
    }
    $('#id1,#id2,#id3').addEventListener("click", setTitle);
    hocam cok tesekkürler bu sekilde yapabiliyorum benim istedigim biraz daha farklı

    örnek 1 tane tablo var o tablodan bir içerige tıklayınca hangi içerige tiklandiysa o içerigin idsini almak istiyorum
  • 16-01-2023, 00:33:10
    #4
    nebisego adlı üyeden alıntı: mesajı görüntüle
    merhaba arkadaşlar internetten araştırdıgım ile sayfa yenilenmeden title değiştirmek istiyorum değişti fakat en üsteki idyi çekiyor sadece
    benim yapmak istediğim hangisine tıklandıysa onu çekmek yardımcı olur musunuz?
    <script type="text/javascript">
     const element = document.getElementById("myBtn");
    element.addEventListener("click", setTitle);
            function setTitle( text ) {
                document.title = '<?php echo $resimcek['resim_ad'] ?>';
            }
        </script>
    <a id="myBtn" onclick="change('/seo/<?php echo $cekresim['resim_seo'] ?>')"
    <title id="demo"></title>
    Öncelikle hocam şuan kullandığınız jquery değil saf javascript.
    Bir de change fonksiyonu nedir, ne işe yarıyor orada ?
    Jquery ile live, click ve data uygulamalarını araştırın bakın yapamazsanız yazın tekrar yardımcı olayım.
    Kolay Gelsin.
  • 16-01-2023, 00:34:44
    #5
    Üyeliği durduruldu
    CoLLeR adlı üyeden alıntı: mesajı görüntüle
    Öncelikle hocam şuan kullandığınız jquery değil saf javascript.
    Bir de change fonksiyonu nedir, ne işe yarıyor orada ?
    Jquery ile live, click ve data uygulamalarını araştırın bakın yapamazsanız yazın tekrar yardımcı olayım.
    Kolay Gelsin.
    <script>

    merhaba hocam teşekkür ederim change fonksiyonu hangi içerige tiklandiysa sayfanin urlsini degistiriyor

    function change(url) {
    window.history.pushState('new', 'title', url);

    }
    </script>
  • 16-01-2023, 00:55:33
    #6
    nebisego adlı üyeden alıntı: mesajı görüntüle
    <script>

    merhaba hocam teşekkür ederim change fonksiyonu hangi içerige tiklandiysa sayfanin urlsini degistiriyor

    function change(url) {
    window.history.pushState('new', 'title', url);

    }
    </script>
    Anladım hocam, aşağıya sizin için bir örnek hazırladım kendinize göre düzenleyiniz.


    <html>
      <title>TITLE</title>
      <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
      </head>
      <body>
        <a id="myBtn" data-title="Title1">Link1</a>       <br><br>
        <a id="myBtn" data-title="Title2">Link2</a>
        <br><br>
        <a id="myBtn" data-title="Title3">Link3</a>
        <br><br>
        <a id="myBtn" data-title="Title4">Link4</a>
    <script>
    $("body").on("click","#myBtn",function(){
      var title = $(this).data("title");
      $(document).prop("title", title);
    });
    </script>
      </body>
    </html>
  • 16-01-2023, 01:02:32
    #7
    Üyeliği durduruldu
    CoLLeR adlı üyeden alıntı: mesajı görüntüle
    Anladım hocam, aşağıya sizin için bir örnek hazırladım kendinize göre düzenleyiniz.


    <html>
      <title>TITLE</title>
      <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
      </head>
      <body>
        <a id="myBtn" data-title="Title1">Link1</a>       <br><br>
        <a id="myBtn" data-title="Title2">Link2</a>
        <br><br>
        <a id="myBtn" data-title="Title3">Link3</a>
        <br><br>
        <a id="myBtn" data-title="Title4">Link4</a>
    <script>
    $("body").on("click","#myBtn",function(){
      var title = $(this).data("title");
      $(document).prop("title", title);
    });
    </script>
      </body>
    </html>
    hocam gerçekten çok teşekkür ederim 1 gündür bunla ugraşıyorum ama olmuyor js yeni basladim deneye deneye masallah ogrendim birseyler
    ücretli olarak anydesk ile sorunu cozmeme yardim eder misiniz fazla bir ücret ödeyemem ama yardimci olursaniz sevinirim gerçekten
  • 16-01-2023, 01:06:00
    #8
    nebisego adlı üyeden alıntı: mesajı görüntüle
    hocam gerçekten çok teşekkür ederim 1 gündür bunla ugraşıyorum ama olmuyor js yeni basladim deneye deneye masallah ogrendim birseyler
    ücretli olarak anydesk ile sorunu cozmeme yardim eder misiniz fazla bir ücret ödeyemem ama yardimci olursaniz sevinirim gerçekten
    Hocam ücrete gerek yok, pm ile bilgileri iletin sorun buysa halledelim.
  • 16-01-2023, 01:41:24
    #9
    nebisego adlı üyeden alıntı: mesajı görüntüle
    hocam cok tesekkürler bu sekilde yapabiliyorum benim istedigim biraz daha farklı

    örnek 1 tane tablo var o tablodan bir içerige tıklayınca hangi içerige tiklandiysa o içerigin idsini almak istiyorum
    Not: İstediğiniz temel olarak jquery closest ile yapılabilir ama biraz detaylı anlatacağım.


    Bu tarz işlerde JQuery ve PHP kısmını ayırmalısınız. JQuery içinde PHP yazmak pek mantıklı değil zaten.

    3 yıl önce benzeri bir yapıda kod yazmıştım, işinizi görebilir.

    Backend isteklerini göndermek için axios kullanabilirsiniz, axios'u araştırın beraber kod yazdığımız arkadaş fonksiyonel hale getirmek için bu şekilde fonksiyon oluşturmuş;

    function fetchApi(url, data = {}, response) {
        axios.post(url, data)
          .then(function (resp) {
            if (!resp.data.success && Array.isArray(resp.data.msg)){
              resp.data.msg.map(function (val) {
                toastr.error(val);
              })
            } else if (!resp.data.success && resp.data.msg){
              toastr.error(resp.data.msg);
            }
            if (resp.data.success && resp.data.msg){
              toastr.success(resp.data.msg);
            }
            response(resp.data);
          });
    }
    Projede twig template kullanıldı, app.html.twig ve diğer addCategoryModal.html.twig dosyalarını include edilmiş gibi düşünebilirsin.

    {% extends 'root/app.html.twig' %}
    {% block content %}
    <div class="button-custom">
        <button class="btn btn-primary btn-fill btn-wd float-right" data-toggle="modal" data-target="#categoryModal">Kategori Ekle</button>
    </div>
    <div class="card">
        <div class="card-body">
            <h4 class="card-title pb-2">Kategoriler</h4>
            <div class="table-responsive">
                <table class="table table-striped" id="catList">
                    <thead>
                    <tr>
                        <th>#</th>
                        <th>Kategori Ad</th>
                        <th>Durum</th>
                        <th>Duzenle</th>
                        <th>Sil</th>
                    </tr>
                    </thead>
                    <tbody>
    
                    </tbody>
                </table>
            </div>
        </div>
    </div>
            {% include 'admin/category/addCategoryModal.html.twig' %}
        {% endblock %}
        {% block js %}
    <script>
          $(document).ready(function() {
            function tableRow(id, order, name, situation, situationName){
              return $('<tr id="'+id+'" situation='+situation+' name="'+name+'" order="'+order+'">' +
                  '<th>'+order+'</th>' +
                  '<td>'+name+'</td>' +
                  '<td>'+situationName+'</td>' +
                  '<td><button class="btn btn-success btn-sm edit text-white" data-toggle="modal" data-target="#updateCategoryModal">Düzenle</button></td>' +
                  '<td><button class="btn btn-danger btn-sm delete" data-toggle="modal" data-target="#deleteCategoryModal">Sil</button></td>' +
                  '</tr>')
            }
            fetchApi('/api/admin/category/list', {}, function (res) {
                res.data.map(function (val) {
                    let situationName = val.situation ? 'Aktif' : 'Pasif';
                    let row = tableRow(val.id, val.order, val.name, val.situation, situationName);
                    $('#catList > tbody').append(row);
                });
            });
            $('#createCategory').on('click', function () {
              var data = {
                catName: $('#catName').val(),
                order: $('#order').val(),
                situation: $('#situation').find('option:selected').val(),
              };
              if (data.catName.length > 0 && data.order.length > 0){
                fetchApi('/api/admin/category/create', data, function (res) {
                  if (res.success){
                    window.location.reload();
                  }
                })
              } else {
                toastr.warning('Alanlari kontrol ediniz.');
              }
            });
    
            $('#catList').on('click', '.delete', function() {
              var id = $(this).closest('tr').attr('id');
              $('#catList').data('deleteId', id);
            });
    
            $('#catList').on('click', '.edit', function() {
              var id = $(this).closest('tr').attr('id');
              var name = $(this).closest('tr').attr('name');
              var situation = $(this).closest('tr').attr('situation');
              var order = $(this).closest('tr').attr('order');
              $('#catList').data('editId', id);
              $('#uCatName').val(name);
              $('#uOrder').val(order);
              $('#uSituation').val(situation);
            });
          });
        </script>
        {% endblock %}
    Kategori table tablosuna catList adında ID verilmiş ve kategori içeriği JS ile doldurulmuş.

            function tableRow(id, order, name, situation, situationName){
              return $('<tr id="'+id+'" situation='+situation+' name="'+name+'" order="'+order+'">' +
                  '<th>'+order+'</th>' +
                  '<td>'+name+'</td>' +
                  '<td>'+situationName+'</td>' +
                  '<td><button class="btn btn-success btn-sm edit text-white" data-toggle="modal" data-target="#updateCategoryModal">Düzenle</button></td>' +
                  '<td><button class="btn btn-danger btn-sm delete" data-toggle="modal" data-target="#deleteCategoryModal">Sil</button></td>' +
                  '</tr>')
            }
            fetchApi('/api/admin/category/list', {}, function (res) {
                res.data.map(function (val) {
                    let situationName = val.situation ? 'Aktif' : 'Pasif';
                    let row = tableRow(val.id, val.order, val.name, val.situation, situationName);
                    $('#catList > tbody').append(row);
                });
            });
    api/admin/category/list bölümüne istek atılıyor ve liste çekiliyor. let row = tableRow(val.id, val.order, val.name, val.situation, situationName); ile tableRow fonksiyonundan satır oluşturuluyor, $('#catList > tbody').append(row); şeklinde tabloya ekleniyor.

    Tabloya veri eklenirken;
    '<td><button class="btn btn-success btn-sm edit text-white" data-toggle="modal" data-target="#updateCategoryModal">Düzenle</button></td>' +
    bold yaptığım bölümdeki gibi edit - delete veya hangi işlem kullanılacak ise onunla ilgili class ekleniyor. Sebebi ise her ID tek bir yerde kullanılır, aynı işlem birden fazla elementte yapılacak ise class kullanmak daha mantıklı.

    Peki hangi satıra tıklandığını nasıl anlayacağız?


            $('#catList').on('click', '.edit', function() {
              var id = $(this).closest('tr').attr('id');
              var name = $(this).closest('tr').attr('name');
              var situation = $(this).closest('tr').attr('situation');
              var order = $(this).closest('tr').attr('order');
              $('#catList').data('editId', id);
              $('#uCatName').val(name);
              $('#uOrder').val(order);
              $('#uSituation').val(situation);
            })
    catList ID'sine sahip tablonun altındaki .edit (class) elementine tıklandı ise $(this).closest('tr').attr('id'); şeklinde verisine ulaşıyoruz.

    closest kullanımı : https://api.jquery.com/closest/

    Ne yaptık? ajax / axios vb bir kütühane ile backend php bölümüne istek attık, gelen veriyi javascript ile tabloya ekledik ve düzenleme/silme işleminde seçtiğimiz verinin bilgilerine ulaştık.

    Bundan sonra veri ile ilgili her şeyi yapabilirsiniz, örneğin güncelletmek mi istiyorsunuz? seçilen verinin ID'sinin backend'e gönder SQL ile sorgu yaptır ve veriyi geriyi istediğin yerde işle.

    Backend;

        public function getCategories($request, $response){
            $validation = $this->validator->validate($request, [
            ]);
    
            if ($validation->failed())
            {
                return $response->withJson([
                    'success' => false,
                    'msg' => $_SESSION['errors'],
                ]);
            }
    
            $categories = Category::orderBy('order')
                ->where('situation', 1)
                ->get();
            return $response->withJson($this->getResponseData(
                ['categories' => $categories]
            ));
        }

    Yeni başladığınızı belirtmişsiniz ne kadar açıklayıcı oldu bilmiyorum büyük ihtimalle freamworkte kullanmıyorsunuz.
    /api/categories/index.php
    /api/categories/add.php
    /api/categories/delete.php?id
    /api/categories/edit.php?id

    şeklinde yapabilirsiniz. Ajax ile birinci bölüme attığınız istekte verileri SQL'den çekip tabloya işlersiniz, tablodan istediğiniz bölüme tıklayınca diğer işlemleri yaptırırsınız.