Zend Framework göre otomatik tamamlama Tedarik ekstra bir parametre

1 Cevap php

Ben (en azından) aşağıdaki iki alanları ile bir form var:

  • ülke
  • kulüp

Kulüp ayrıca aşağıdaki javascript kodu üretir ZendX_JQuery_Form_Element_AutoComplete Element yoluyla oluşturulan bir alandır:

$("#kulüp").autocomplete({"url":"\/mywebsite\/\/mycontroller\/autocomplete"});

Ben ülkenin başına kulüpleri bir veritabanı var. Ne istiyorum ki only the kulüps are returned for the (user) given ülke. Bu liste, bir uzak (ajax) çağrı yoluyla alınması gerekir. Bunun için kod:

 public function autocompleteAction()
    {
        $request = $this->getRequest();

        $filter = $request->getParam('q');
        $ülke = $request->getParam('ülke');

        $kulüplist = getClubListBySubstring($ülke, $filter);

        $this->_helper->autoComplete($kulüplist);
    }

Herhalde ZendX_JQuery_Form_Element_AutoComplete tarafından yapılan nesil geçerek-, yukarıdaki javascript kodunu değiştirmek ve parametre olarak yorumlanır alır URL'ye bir ekstra eleman ekleyebilirsiniz ülke.

Ama daha zarif bir çözüm var mı? Ben ExtraParams hakkında bir şey, ki çalışma ve nasıl okudun?

1 Cevap

Bu Javascript oluşturmak için sunucu kullanıyorsanız size karşı işe yarayabilir bu 'gri alanlar' biridir. Istemci tarafı komut dosyası yazma kendinizi bir dizi yolla size fayda sağlayacaktır:

  • JQuery Otomatik Tamamlama ve ne onunla yapabileceğiniz hakkında daha fazla bilgi edineceğiz.
  • Sen Autocompleter davranışları üzerinde daha fazla kontrole sahip olacaksınız.
  • Sizin çözüm Zend Framework üzerinde daha az bağımlı olacaktır, ve dolayısıyla daha taşınabilir olacaktır.

Ben uçtan uca bir çözüm olarak ZendX_JQuery_Form_Element_AutoComplete bakmadan önce, addition parameters on the jQuery side of things ile kendimi tanıtmak istiyorum. Ayrıca, size değil zaten varsa "Sızıntılı soyutlamalar Kanunu" başlıklı Joel Spolsky tarafından aşağıdaki makale okumak isteyebilirsiniz:

http://www.joelonsoftware.com/articles/LeakyAbstractions.html

I (ZF denetleyicisi eylem bağlı) bir Autocompleter uygulanan ve ZF otomatik tamamlama yardımcısı varlığının tamamen farkında olduğunu, ama küçük bir çimdik uygulayarak nerede bu durumlardan biri olmak istemiyordu, bunu kullanmamayı tercih ettik sunucusundaki kod üretme aracı çalmak istemiyor çünkü tüm çözümü hurdaya gerektirecektir.

Bu can sıkıcı daha yararlı olduğunu umuyoruz.