• 03-02-2023, 21:33:30
    #1
    Selamlar,

    Geçmiş kayıtları listelemiş olduğum bir sayfa var.
    Kullanıcı burada istemiş olduğu kayıdın sağ tarafında bulunan "Düzenle" butonuna bastığı taktirde başlık ve içeriği modal üzerinde gösteriyorum.
    Başlık her kayıt için değişkenlik gösteriyor, doğru bir şekilde çalışıyor.
    İçerik kısmı her "Düzenle" butonuna bastığında aynı kaydı getiriyor.
    Bu sorunu günlerdir çözemedim, kodumda ki hatayı göremiyorum.
    Bu sorun için yardımcı olacak arkadaşa bir kahve ısmarlamak istiyorum.

    Sorunun detaylı videosu: https://streamable.com/eg6gku

    Duyuruları listelemiş olduğum kod:
    // Duyuruları çek
    $sql = "SELECT a.*, c.name AS name, u.username AS created_user_name
    FROM duyuru_sistemi.announcements a
    INNER JOIN duyuru_sistemi.categories c ON a.category_id = c.id
    INNER JOIN test.users u ON a.created_user = u.id
    WHERE a.archived = 0 AND a.created_user = '$user_id'
    ORDER BY a.created_at DESC";
    $result = mysqli_query($conn, $sql);
    
    // Duyuruları bir tablo olarak göster
    echo "<table class='table table-bordered'>";
    echo "
        <tr>
            <th>Başlık</th>
            <th>İçerik</th>
        <th>Kategori</th>
            <th>Tarih</th>
        <th>Duyuruyu Ekleyen KiÅŸi</th>
            <th>İşlemler</th>
        </tr>
        ";
    while($row = mysqli_fetch_assoc($result)) {
        echo "<tr>";
        echo "<td>" . $row['title'] . "</td>";
        echo "<td>" . $row['body'] . "</td>";
        echo "<td>" . $row['name'] . "</td>";
        echo "<td>" . $row['created_at'] . "</td>";
        echo "<td>" . $row['created_user_name'] . "</td>";
        echo "<td>";
        // Düzenleme ve silme düğmelerini ekle
        echo "<button class='btn btn-primary' data-id='" . $row['id'] . "' data-bs-toggle='modal' data-bs-target='#staticBackdrop'>Düzenle</button>";
        echo "<button class='btn btn-warning' data-id='" . $row['id'] . "'>ArÅŸivle</button>";
        //echo "<button class='btn btn-danger' data-id='" . $row['id'] . "'>Sil</button>";
        echo "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    mysqli_close($conn);
    Modal Kodu:
    <div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="true" aria-labelledby="staticBackdropLabel" aria-hidden="true">
      <div class="modal-dialog modal-xl">
        <div class="modal-content">
          <div class="modal-header">
            <h1 class="modal-title fs-5" id="staticBackdropLabel">Duyuru Düzenle</h1>
            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
          </div>
          <div class="modal-body">
    
              <form id="edit-announcement-form" style="display:none;">
                <input type="hidden" id="edit-announcement-id">
                <label for="edit-title">Başlık:</label>
                <input class="form-control" type="text" id="edit-title">
                </br>
                <label for="edit-content">İçerik:</label>
                <textarea id="edit-content"></textarea>
                </br>
                <button class="btn btn-success" type="submit">Düzenle</button>
              </form>
    
          </div>
        </div>
      </div>
    </div>
    Javascript kodu:
      $('.btn-primary').click(function() {
        var id = $(this).data('id');
        $.ajax({
          url: 'duyuru_vericek.php',
          type: 'POST',
          data: {id: id},
          success: function(response) {
            var announcement = JSON.parse(response);
            $('#edit-announcement-form').show();
            $('#edit-announcement-id').val(announcement.id);
            $('#edit-title').val(announcement.title);
            editor = CKEDITOR.replace('edit-content', {
              filebrowserUploadUrl: 'ckeditor/ck_upload.php',
              filebrowserUploadMethod: 'form'
            });
            editor.setData(announcement.body);
          }
        });
      });
    
      // Düzenleme formunun submit olayını ekleyin
      $('#edit-announcement-form').submit(function(e) {
        e.preventDefault();
        var id = $('#edit-announcement-id').val();
        var title = $('#edit-title').val();
        var content = editor.getData();
        $.ajax({
          url: 'duyuru_islemuygula.php',
          type: 'POST',
          data: {id: id, title: title, content: content},
          success: function() {
            location.reload();
          }
        });
      });
  • 03-02-2023, 21:37:20
    #2
    Hocam Js kodunda buton id almışsın HTML kodunda forma id vermişsin form etiketini kaldırıp butona id vermen gerekiyor
  • 03-02-2023, 21:38:53
    #3
    Her Modal'a ayrı id verip o id ile Modal'ı çalıştırın.
  • 03-02-2023, 21:39:45
    #4
    Anydesk varsa iletebilirmisiniz hocam hemen bi kontrol edelim
  • 03-02-2023, 21:41:59
    #5
    brkctk adlı üyeden alıntı: mesajı görüntüle
    Hocam Js kodunda buton id almışsın HTML kodunda forma id vermişsin form etiketini kaldırıp butona id vermen gerekiyor
    Scarecrow adlı üyeden alıntı: mesajı görüntüle
    Her Modal'a ayrı id verip o id ile Modal'ı çalıştırın.
    Duyuruları listelediğim bölümün kodunu yazmayı unutmuşum.
    Duyuruların yanında bulunan "Düzenle" butonuna tıklarken ID alıyorum;
    1. mesajı düzenledim.
        echo "<button class='btn btn-primary' data-id='" . $row['id'] . "' data-bs-toggle='modal' data-bs-target='#staticBackdrop'>Düzenle</button>";
    ereneser adlı üyeden alıntı: mesajı görüntüle
    Anydesk varsa iletebilirmisiniz hocam hemen bi kontrol edelim
    Özelden ilettim.
  • 03-02-2023, 21:47:50
    #6
    turansonkaya adlı üyeden alıntı: mesajı görüntüle
    Duyuruları listelediğim bölümün kodunu yazmayı unutmuşum.
    Duyuruların yanında bulunan "Düzenle" butonuna tıklarken ID alıyorum;
    1. mesajı düzenledim.
        echo "<button class='btn btn-primary' data-id='" . $row['id'] . "' data-bs-toggle='modal' data-bs-target='#staticBackdrop'>Düzenle</button>";
    Özelden ilettim.
    Problem muhtemelen ckeditor update etmemesinden kaynaklanıyor. Ckeditor'un güncelleme methodlarını araştırın.
  • 03-02-2023, 22:48:00
    #7
    Scarecrow adlı üyeden alıntı: mesajı görüntüle
    Problem muhtemelen ckeditor update etmemesinden kaynaklanıyor. Ckeditor'un güncelleme methodlarını araştırın.
    Sanırım evet fakat nasıl düzelteceğim hakkında hiçbir fikrim yok.
  • 03-02-2023, 23:05:31
    #8
    sorununuz çözüme ulaşmadı ise bizlere imzadan ulaşabilirsiniz.
  • 04-02-2023, 02:32:45
    #9
    turansonkaya adlı üyeden alıntı: mesajı görüntüle
    Sanırım evet fakat nasıl düzelteceğim hakkında hiçbir fikrim yok.
    Ckeditörü Ajax içinde remove edip tekrar setup yapın. Olmazsa her düzenleme için Ajax ile ayrı ayrı modal çağırın. Ben bu şekilde yapıyorum.