<p>Dikkat:</p>

<p>Kasıtlı olarak <code>0</code> yer tutucusu olarak geçiriyoruz.</p>

<p>Laravel geçerli bir rota üretir:</p>

<div class="highlight js-code-highlight">
    <pre class="highlight plaintext"><code>/pages/0

<p>Biz dinamik olarak <code>0</code>'ı değiştireceğiz.</p>

<hr/>

<h3>
    <a name="delete-button" href="#delete-button">Silme Butonu</a>
</h3>

<div class="highlight js-code-highlight">
    <pre class="highlight plaintext"><code><button type="button" data-modal-target="delete-user-modal" data-modal-toggle="delete-user-modal" onclick="setID({{ $page-&gt;id }})">
Delete


<h3>
    <a name="javascript" href="#javascript">JavaScript</a>
</h3>

<div class="highlight js-code-highlight">
    <pre class="highlight plaintext"><code><script><![CDATA[

let selectedId = null;

function setID(id) {
selectedId = id;

let path = "{{ route('site.pages.destroy', ['page' => 0]) }}";

path = path.replace('/0', id);

document.getElementById('delete-form').action = path;

}

function submitForm() {
document.getElementById(‘delete-form’).submit();
}
]]>

<h3>
    <a name="modal-confirmation-button" href="#modal-confirmation-button">Modal Onay Butonu</a>
</h3>

<div class="highlight js-code-highlight">
    <pre class="highlight plaintext"><code><a href="#" onclick="submitForm()">Evet</a>

<h3>
    <a name="whats-happening" href="#whats-happening">Olanlar</a>
</h3>

<ol>
    <li> Rota bir kez <code>0</code> ile oluşturulur</li>
    <li> Silme butonuna tıklandığında → ID yakalanır</li>
    <li> JavaScript <code>/0</code>'ı gerçek ID ile değiştirir</li>
    <li> Onay butonu gizli formu gönderir</li>
</ol>

<p>Avantajlarınız:</p>

<ul>
    <li> DOM'da tek form</li>
    <li> Temiz tablo işaretlemesi</li>
    <li> Uygun Laravel rota kullanımı</li>
    <li> Hiçbir rota dizesi sabit kodlanmamış</li>
    <li> Merkezi silme mantığı</li>
    <li> Modal onayı dahil edilmiş</li>
</ul>

<p>Yapısal olarak, bu temiz ve ölçeklenebilir.</p>

<hr/>

<h2>
    <a name="bonus-the-htmx-way" href="#bonus-the-htmx-way">Bonus: HTMX Yöntemi</a>
</h2>

<p>HTMX kullanıyorsanız, özel fetch çağrılarına veya gizli formları manuel olarak göndermeye ihtiyacınız yok.</p>

<p>HTMX, HTTP isteklerini doğrudan HTML nitelikleriyle tetiklemenizi sağlar.</p>

<p>Doğru. Sadece nitelikler.</p>

<hr/>

<h2>
    <a name="basic-htmx-delete-example" href="#basic-htmx-delete-example">Temel HTMX Silme Örneği</a>
</h2>

<p>Öncelikle, layout'unuza HTMX ekleyin:</p>

<div class="highlight js-code-highlight">
    <pre class="highlight plaintext"><code><script src="https://unpkg.com/[email protected]"/>


<p>Şimdi tablonuz:</p>

<div class="highlight js-code-highlight">
    <pre class="highlight plaintext"><code>@foreach ($pages as $page)
{{ $page->title }}

@endforeach

<h3>
    <a name="whats-happening" href="#whats-happening">Olanlar</a>
</h3>

<ul>
    <li> <code>hx-delete</code> bir DELETE isteği gönderir</li>
    <li> <code>hx-confirm</code> otomatik olarak onay popup'ını gösterir</li>
    <li> <code>hx-target</code> HTMX'in hangi elemanı güncelleyeceğini belirtir</li>
    <li> <code>hx-swap="outerHTML"</code> başarılı yanıt sonrası satırı kaldırır</li>
    <li> CSRF token başlık aracılığıyla geçilir</li>
</ul>

<p>Özel JavaScript'e gerek yok.</p>

<p>Gizli formlara gerek yok.</p>

<p>Manuel fetch mantığı yok.</p>

<p>Yalnızca nitelikler.</p>

<h2>
    <a name="which-method-is-better" href="#which-method-is-better">Hangi Yöntem Daha İyi?</a>
</h2>

<p>Onay gerektirdiğinde, birinci yöntem gürültülü hale gelir, çünkü birçok formu takip etmeniz gerekir.</p>

<p>Üçüncü yöntem kabul edilebilir, ancak hala sayfa yeniden yükleme davranışına bağlıdır.</p>

<p>Ajax, anlık UI güncellemeleri istiyorsanız güçlüdür.</p>

<p>Ancak yapısal olarak, gizli global form ve yer tutucu ile değiştirme en dengeli olanıdır:</p>

<ul>
    <li> Temiz Blade</li>
    <li> Temiz rotalar</li>
    <li> Temiz onay akışı</li>
    <li> Minimum DOM kirliliği</li>
    <li> Kolay bakım</li>
</ul>

<p>Kaygıları düzgün bir şekilde ayırır.</p>

<p>Tablo verileri render eder. Modal onayı yönetir. Gizli form gönderimi sağlar.</p>

<h2>
    <a name="why-htmx-is-interesting" href="#why-htmx-is-interesting">HTMX Neden İlgilidir?</a>
</h2>

<p>Sizlere şunları sunar:</p>

<ul>
    <li> AJAX davranışı</li>
    <li> Onay</li>
    <li> DOM güncellemesi</li>
    <li> RESTful istekler</li>
</ul>

<p>JavaScript mantığı yazmadan.</p>

<p>Blade'inizi okunaklı tutar.</p>

<p>Rotalarınızı temiz tutar.</p>

<p>Geleneksel sunucu tabanlı uygulamalar gibi hissedilir, ancak dinamik.</p>

<p>Umarım, bir satırı silmek için benimseyebileceğiniz yöntemlerle ilgili daha net bir resim verir.</p>

Kaynak: Orijinal Makale

Bu Makaleyi Paylaş