Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF][ZendFramework]Zend Form + jQuery problem z niektorymi polami
Skyline
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

Ostrzeżenie: (0%)
-----


Witam

Mam problem z wypelnieniem pola typu select (wygenerowanego przez zend_form) za pomoca jQuery.

Jesli mam element typu textarea:

  1. $this->addElement('textarea', 'address', array(
  2. 'label' => 'Adres:',
  3. 'required' => true,
  4. 'filters' => array('StringTrim')
  5. ));


Wyglądający w html'u tak:

  1. <dt id="address-label">
  2. <label for="address" class="required">Adres:</label>
  3. </dt>
  4. <dd id="address-element">
  5. <textarea name="address" id="address" rows="24" cols="80"></textarea>
  6. </dd>


To spokojnie moge go wypelnic treścią za pomocą jQuery:

  1. $('#address').html('Tresc ktora pojawi sie w textarea');


Natomiast nie moge wypelnic elementu:

  1. $company = $this->createElement('select', 'company', array('label' => 'Firma:'));
  2. $company->setRequired(false);
  3. $company->addMultiOption('0', '-- wybierz --');
  4. $this->addElement($company);


kodem:

  1. $('#company').html('<option value="1" label="1">Pierwsza firma</option>');


Natomiast jesli recznie w pliku szablonu wpisze kod ktory generuje zend form dla elementu select (czyli sam sobie recznie takiego selecta utworze) to moge go wypelnic za pomoca tej skladni jQuery.

Czy ktos z was jest w stanie okreslic, gdzie lezy problem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xajart
post
Post #2





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


Może przeprowadz sobie wstępną diagnostykę, na początek podgląd drzewa DOM. Potem za pomocą alertu wyświetlić wartość jaka zostaje wybrana z selecta. Choćby po to by sprawdzić czy poprawnie się do niego odwołujesz. A potem wprowadz nową wartość do selecta i sprawdz na drzewku DOM co się dzieje. 

poza tym pisząc w ten sposób:

Kod
$('#company').html('<option value="1" label="1">Pierwsza firma</option>');


zastępujesz już istniejący wpis o wartości 0. 
jak kolega wcześniej pisał należy użyć append by dodać kolejną:
Kod
$('#company').append('<option value="1" label="1">Pierwsza firma</option>');



Na czystym HTML + JS to działą bez problemu, zaś na kodzie frameworka który masz podany wyżej nie sprawdzałem - bo teraz nia mam na to czasu. Może wieczorem jak wróce to sprawdze. 

Sprawdz sobie skrypt pod kątem identyfikatorów oraz pod katem innych plików JS czy nie ma jakiś konfliktów.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 17:36