javascript ile php den bilgi aktarmak için nasıl

1 Cevap php

Ben Klasör adında bir web arayüzü denetimi üzerinde çalışıyorum - bu temelde Windows Gezgini klasör taklit - Bir dikdörtgenin içinde öğelerin bir ızgara görmek ve etrafında bir öğeyi sürükleyin farklı bir denetim örneği içindeki bir öğeyi bırakın, yeni öğeler eklemek ve vb. her bir madde şablon yapılır - bir öğe şablonu bu gibi görünebilir, örneğin, öğenin görünümünü belirler temelde bazı php kodu:

my_item_template.php:

<h3>my item</h3>
<p>i'm an item</p>

öğeyi sürüklerken ben örneğin, farklı bir şablon ile değiştirmek istiyorum:

my_item_drag_template.php:

<h3>my item</h3>
<p>i'm being dragged</p>

one page may host many different kinds of items, each with its template, its load template, its drop template and so on. my problem is moving all these templates from the server side to the client side.
what i'm doing now - in the server side stage i figure out all the templates that i'll need and include them on the page, hidden (display:none). whenever i need a template (for example when the user starts dragging an item and i need its drag template) i locate it, clone it and use. i'd like to avoid having all this code hidden in my page, maybe store it in a jquery's $(folder).data or something. however, i still need to move it from the php. one option would be to insert the templates to $(folder).data and remove them from the page on page load, but i'd rather avoid it (it adds unnecessary dom manipulation). are there any better ways?

1 Cevap

Kesinlikle ilginç bir problem, ama çok uzakta gizli bir div dom içinde şablonları saklayarak iyi bir çözüm vardır sanmıyorum. Eğer yoksa alot şablonları, bu genelde kolay erişim için harika bir yoldur.

Başka bir seçenek ajax isteği için ihtiyacınız bir şablon. Html bir parça almak ve bir elemanın içine enjekte JQuery'nin $. Yük işlevini kullanabilirsiniz.

$('<div class="newItem" />')
  .load('getTemplate.php?template_id=newItem')
  .appendTo('body');

Belli ki gerçek veriler ile yeni bir unsur doldurmak olurdu, ama yine de tek bir çağrı yapabilirsiniz.

Orada yaparak isabet bir performans tabii ki, ama istekleri yapma sakıncası yoksa yapısal kazanç oldukça önemli. Bu, sadece sizin gibi backend şablonlarınızı tanımlamak için izin verir istiyorsunuz yerine dibinde gizli bir div hepsini bir araya emme normal bir sayfa.