2012-04-09 2 views
0

Ich habe mit einem Ajax und Doktrin Chain-Dropdown erstellt, um eine Kategorie auszuwählen. Ich habe sie in die Komponente eingefügt. Es funktioniert wie folgt:symfony 1.4 FORMS - Wie ersetzt man das (verwandte) Dropdown-Standardfeld durch den in Modul/Komponente generierten Code?

http://www.plus2net.com/php_tutorial/ajax_drop_down_list.php

Im Versuch, auf Schema Standardkategorie Dropdown bauen und mit aktueller Tabelle, zu ersetzen. Wenn in

/lib/form/doctrine/TabbleForm.class.php 

ich ein Feld mit dem Code entfernen:

unset($this['category']); 

Und in der tamplate, die einen Formkörper mir eine Komponente Code einfügen hat (mit dieser dynamischen AJAX-basierten Dropdown):

include_component('add', 'selectcategory',array('catid' => 0)); 

ich habe Hinweis:

Unexpected extra form field named "category". 

Wie kann ich diesen Standardcode durch Kategoriefeldcode von Komponente/Modul ersetzen?

Antwort

0

Wie zeigen Sie Ihr Formular in der Vorlage an? Mit einem Grund <?php echo $form; ?> oder manuell wie:

<?php echo $form['field']->renderLabel() ?> 
<?php echo $form['field']->render() ?> 
<?php echo $form['field']->renderError() ?> 

empfehle ich Ihnen die zweite Methode zu verwenden, zumindest <?php echo $form['field']->renderRow() ?> verwenden. Auf diese Weise müssen Sie nicht das unset das Kategorie-Feld von Ihrer Form-Klasse haben. Aber Sie müssen das select-Tag in Ihrer Komponente genauso benennen wie das Formular.

Wenn das Formular Anzeige:

<select id="formname_category" name="formname[category]">...</select> 

Sie den gleichen Namen verwenden müssen (für die zweite wähle ich denke). Dann haben Sie kein Problem in Ihrem Formular und, noch wichtiger, der Validator in Bezug auf Ihre category Feld wird auch funktionieren!

Verwandte Themen