2011-05-23 19 views
12

Bir sayfada içeriği yüklemek için drupal 7 ajax framework'ü kullanıyoruz. Bağlantı tıklandığında, istek işlenirken bağlantıdan sonra bir çakmak görünür.Boğazını drupal 7 Ajax bağlantısından nasıl temizlersiniz?

Boğazın nasıl ayarlanacağı veya kaldırılacağı konusunda belge bulamıyorum. Bir formda, gerçekten basit görünüyor, ancak bir ajax bağlantısı ve geri arama menü öğesi kullanarak herhangi bir belge bulamıyorum.

ajax_command_html işlevine iletilebilecek bir $ ayar değişkeni olduğunu görüyorum, ancak nasıl biçimlendirilmesi gerektiği konusunda hiçbir belge göremiyorum. Sence kendi soruya cevap bulduk fazla bilgi ve örnekler

+0

"Gırtlak" ın ne olduğunu açıklayabilir misiniz? ;-) – usr

+0

http://en.wikipedia.org/wiki/Throbber – mirzu

cevap

21

siz "ilerleme" özelliğini tanımlamak gerekir. Anlaşılması gereken en önemli şey, Drupal 7'de bağlantıların yapılabilmesi için 2 yol olmasıdır. Birincisi, eski l() işlevini kullanmaktadır ve diğeri bir render dizisi kullanmaktadır. Drupal'daki tema işlevlerinin çoğu eski stili kullanır ve kullanıldığında drupal_prerender_link() aracılığıyla çalıştırılmaz. Bu, ayarları php'den js katmanına ileten elemanın ön işlemesidir.

+1

Bu değişikliklerin FAPI tarafından ele alınan öğelere nasıl yapılacağı konusunda bir sürü belge vardır, ancak bir bağlantıyı nasıl ele alacağınız hakkında neredeyse hiçbir şey yoktur. – mirzu

+1

Sözünü ettiğimiz gibi, mirzu olarak, eğer FAPI kullanmıyorsanız, drupal_pre_render_link() onu işlemenin en iyi yoludur, aslında FAPI drupal_pre_render_link() işlevini çağırmak için çağırır, böylece temelde sadece önemli katmana atlarsınız bilmediğiniz herkes için, bağlantı dizinizi drupal render etmeyi planladığınız diğer bir html öğesi gibi biçimlendirin, örneğin: 'array ('# href' => 'my_url', '# title' => 'link title', '#ajax' => array ('callback' => 'my_ajax_callback')); vb. – Trey

2

here bulabilirsiniz

$mycheckbox=array(
    '#type' => 'checkbox', 
    '#title' => 'Load it up', 
    '#ajax' => array(
     'callback' => 'ajax_example_callback', 
     'wrapper' => 'checkboxes-div', 
     'effect' => 'slide', 
     'progress' => array('type' => 'none'), 
    ), 
); 

: Eğer form öğesi oluştururken