jquery içinde php ifadeleri

6 Cevap php

Böyle bir jquery işlev içinde 'if' olarak php ifadeleri kullanmak için bu kötü bir uygulama mı?

Ben gerçekten sadece yerine bir kaç kullanarak php sınırlayıcı yükleri daha fazla işlevleri yazılı olmalıdır? ince iş gibi görünüyor ama bu büyük bir faux pax olup olmadığını merak ediyorum?

Örnek:

Bu, bir kod parçacığını php değişken $ url 'projelerini' eşit ise temelde sonra kod ekstra hatları ile geri gelecek, aksi takdirde bu diğer sayfalardan gizli olacak. Bu mantıklı mı?

timer = setTimeout(function() {
    			$('li#contact').removeClass('cur');
    			$('li#$url').addClass('cur');
    			"; if($url=='projects') { echo"
    			$('ul.projects').fadeIn('slow');
    			$('ul.image_display').css('display', 'block');"; }
    			echo"
    				}, 8625);

6 Cevap

Değil kötü bir uygulama bazen bir PHP değişkenin değerini kod yapmak istediğiniz değişecektir.

Ancak PHP kodu açmak ve kapatmak için kullanmak zorunda olacak.

Bu benim görüşüme göre, kod okunabilirliği ve sürdürülebilirlik açısından kötü bir uygulamadır. Eğer bu JS ayrıştırma ve PHP ayrıştırma arasında onlar içerik anahtarı gibi bir zihinsel 'sayfa hatası' neden o iki dili ayrıştırma olmadan onu anlamak, ve birçok insan için değil anlamına gelir birbirini içinde gömülü iki dil, tek nedeni.

Bu unsurlar mevcut hangi sayfa dayalı javascript şube için yeterince kolaydır, ve bu bence bir tercih edilen çözümdür. Eğer gitmek ve Refactor zaman (Ben farklı javascript Eğer js bir ezici büyük miktarda olduğunda mantıklı başlayabilir sağlayan düşünüyorum rağmen) ve aynı zamanda URL tabanlı şubeleşme daha iyi koşullu bazı javascript sağlayarak daha iyi ... ne olur?

Eğer gerçekten PHP dayalı tedarik JS hangi şube gerekir, en azından ayrı satırlarda onları görmek istiyorum ... gibi bir şey olurdu:

<?php if($stmt): ?>
$(javascript).code.goes.here
<?php else: ?>
$(alernative.javascript).code.goes.here
<?php endif; ?>

bir tek satır / tablosunda iki dil okumak ve anlamak zorunda daha güzel olurdu.

duruma göre değişir. Eğer sadece hayır daha, (örneğin bir kullanıcı kimliği veya adı) tüketmek javascript için bazı kullanıcı verileri yazıyoruz. Eğer kontrol yapıları için PHP bir çok kullanıyor iseniz Ancak, bunu yapmak için daha iyi bir yolu muhtemelen var.

(Biraz çirkin koduna sahip başka) yaklaşımın büyük downsides biri güzel önbelleğe alınacak js önlenmesi olacaktır. Ayrı bir sıkıştırılmış js dosyasında dinamik olarak oluşturulan js ve değil sahip olarak, bunu önbelleğe ve bant genişliği zarar yeteneğini kaybederler.

Benim HTML veya PHP içinde JS kodu büyük boyutta sevmiyorum çünkü tüm kod, (HTML / CSS / PHP / JS) mümkün olduğunca ayrı tutmaya çalışın. Ne genellikle değişkenler tıpkı HTML yere koyun, örn <div id="url">value</div> ve sonra jQuery kullanarak almak. Hiçbir değişkenleri olarak, bazen bir yerde display:none kullanarak sayfada gizli bu div yılların birkaç tane var.

Bu şekilde ben hala alınan değerlere bağlı olarak, birden fazla uygulama için aynı JS kodu kullanabilirsiniz. Ben bu ok kabul, ya da bu kurulum / yöntem (aynı zamanda)-done olmadığını olup olmadığını hiçbir fikrim yok ama ben söylemek gerekir.

Eğer php etiketleri arasındaki kodu php koymak gerekmez mi? Aksi takdirde, sadece yerine sunucuda işlenmekte olan kaynak kodu görünecektir.

timer = setTimeout(function() {
                    $('li#contact').removeClass('cur');
                    $('li#$url').addClass('cur');
                    "; <?php if($url=='projects') { echo"
                    $('ul.projects').fadeIn('slow');
                    $('ul.image_display').css('display', 'block');"; }
                    echo"
                            } ?>, 8625);

konu dışı: biraz daha iyi biçimlendirme çok güzel olurdu :)

Ben kötü bir uygulama olduğunu sanmıyorum. Ben geri veritabanından gelen verilere dayalı dinamik jQuery yazmak için ASP.NET değişmezleri kullanın. Ben bunu bir çok şey yok ama ihtiyaç duyduğunuz zamanlar vardır.