Intereting Posts
Как отобразить выбранный элемент в раскрывающемся списке? Создайте всплывающее меню с родительскими элементами PHP: превращение многомерных массивов в одномерные массивы PHP 7, Symfony 3: Fatal error 1 абстрактный метод и поэтому должен быть объявлен абстрактным или реализовать остальные методы php сортировка массива по предопределенному порядку Нельзя использовать объект типа PDOStatement как массив Поиск количества дней между двумя датами Как получить значения флажков в группе с PHP? Переименование файлов после перемещения Редактирование загруженных пользователем файлов? Как создать объект в родительском классе, разделяемом его дочерними классами? Как изменить положение обрезки миниатюр WooCommerce? Любой preg_match () для извлечения URL-адресов изображений из текста? Проблема с output_buffering и php.ini preg_match () или аналогичная функция для проверки валюты

Zend Framework addMultiOption добавляет настраиваемые параметры, такие как «rel» для параметров

Im использует Zend, и мы имеем форму, которая объединяется через ряд функций. Один из них, в частности, addMultiOption, из которого вытаскивается из БД (откуда я не знаю, могу ли я изменить запрос, было бы намного проще и лучше все вокруг. В любом случае, мне нужно добавить «rel», атрибут для каждого параметра / опции, чтобы я мог выполнить задание по опции через jquery, когда этот параметр выбран, его не все параметры, но некоторые, параметры, которые не имеют дополнительной функциональности, будут иметь от 0, где те, у которых есть действия будет иметь от «одного», это происходит от БД. Я пытаюсь выяснить, как я могу добавить дополнительные атрибуты вне ценности

поддерживает ли Zend Framework это, если нет, как я могу это достичь? Я нашел то, что, по-моему, было хорошим сообщением здесь раньше, но оказывается, что это просто не работает для меня

Используя addMultiOption ($ value, $ label), я просто установил параметр значения примерно так:

$value = $id . '" ref="' . $ref; 

и когда он делает, вы получаете:

 <option value="<idValue>" ref="<refValue"><labelValue></option> 

Надеюсь это поможет….

Хорошо, значение получает экранированное, но optionsClasses не так внутри цикла, что добавляет addMultiOptions (val, lable). Я делаю что-то вроде этого:

 $optionClasses[<val>] = 'ref_' . <val> . '" ref="' . <ref>; 

а затем после цикла просто выполните setAttrib ('optionClasses', $ optionsClasses)

И это на самом деле работает …

Итак, вот пример, где я буду определять массив, который может быть набором записей из запроса db с тремя частями, которые мы собираемся использовать; идентификатор, код и смещение

 $records = array( array('id' => 1, 'code' => 'Code 1', 'offset' => 4), array('id' => 2, 'code' => 'Code 2', 'offset' => 5), array('id' => 3, 'code' => 'Code 3', 'offset' => 6) ); 

и я буду использовать это в определении элемента формы (в классе, который расширяет Zend_Form) для выбора, где параметры имеют атрибут «offset», который будет иметь значение «смещение» из массива

 $e = $this->createElement('select', 'code_id'); $e->setLabel('Event Type:') ->setAttrib('size', 1); $optionClasses = array(); foreach ($records as $record) { $optionClass = 'xcode_' . $record['id'] . '" xoffset="' . $record['offset']; $optionClasses[$record['id']] = $optionClass; $e->addMultiOption($record['id'],$record['code']); } $e->setAttrib('optionClasses', $optionClasses); $this->addElement($e); 

и когда это визуализируется, он производит элемент select, например

 <select name="code_id" id="code_id"> <option value="1" class="xcode_1" xoffset="4" selected="selected">Code 1</option> <option value="2" class="xcode_2" xoffset="5">Code 2</option> <option value="3" class="xcode_3" xoffset="6">Code 3</option> </select> 

а затем вы можете получить смещение выбранного параметра с помощью jQuery, используя

  var xoffset = $("#code_id").find("option:selected").attr("xoffset"); 

это работает, потому что атрибут resultClasses, полученный в результате, не получает экранированный методом рендеринга, как это делает атрибут value.