Я постараюсь быть максимально ясным.Я использую Zend-форму с текстовым элементом, который использует -> setIsArray (true);
$submenu2 = new Zend_Form_Element_Text('submenu2');
$submenu2->setValue('Sous menu 2')
->setIsArray(true)
->setAttrib('class', 'cloneSub')
->setAttrib('id', 'sub1')
->setAttrib('onFocus', 'javascript:myFocus(this); return;')
->setAttrib('onBlur', 'javascript:myBlur(this); return;');
$this->addElement($submenu2);
Я устанавливаю элемент как массив, потому что я использую JavaScript для динамического добавления новых элементов.В html это означает:
<input type="text" name="submenu2[]" />
Моя проблема: когда я отправляю форму, она генерирует следующую ошибку
Предупреждение: htmlspecialchars () ожидает, что параметр 1 будет строкой,массив, указанный в /usr/local/zend/share/ZendFramework/library/Zend/View/Abstract.php в строке 905
Просматривая всюду в Интернете, я нашел причину, но не решение.Это связано с тем, что метод _escape () использует zend_form :: isValid (), который ожидает только строки.
Я нашел начало решения в DevNotes Роба Аллена здесь:
http://akrabat.com/page/29/?flattrss_redirect&id=31&md5=b369e042145cc83b1dd4b0031132b801
. Посмотрите на раздел: «Пример загрузки простого файла Zend_Form: снова»
Но когда я пытаюсь согнуть код для разрешениямоя проблема, она генерирует мне следующую ошибку:
Фатальная ошибка: класс 'App_Form_Element_Text' не найден в ...
Кстати, я сталкиваюсь с той же проблемойесли просто попытаться заполнить данные в одно и то же поле.
У кого-нибудь есть идеи?Большое спасибо.
ОБНОВЛЕНИЕ:
$submenu2 = new Custom_Elements_ArrayElement('submenu2');
$submenu2->setValue('Sous menu 2')
->setIsArray(true)
->setAttrib('class', 'cloneSub')
->setAttrib('id', 'sub1')
->setAttrib('onFocus', 'javascript:myFocus(this); return;')
->setAttrib('onBlur', 'javascript:myBlur(this); return;');
$this->addElement($submenu2);
Я создал класс, который вы дали мне в "APPLICATION_PATH" /../library/Custom/Elements "И я получаю:
Неустранимая ошибка: класс 'Custom_Elements_ArrayElement' не найден