#jquery #xml #joomla
#jquery #xml #joomla
Вопрос:
Мне нужно создать несколько пользовательских полей с использованием xml в модуле в joomla 3.0. Я сделал что-то вроде этого, показанного ниже. мой mod_category.xml код файла для полей выглядит следующим образом :
<fields name="params">
<fieldset name="protection" addfieldpath="/modules/mod_careercategory/include/" label="tagelement">
<field name="headerTitle" type="text" default="" label="HEADER_TITLE" description="HEADER_TITLE_DESC"/>
<field name="Title" type="tagelements" label="TITLE" id="Title"/>
</fieldset>
</fields>
и мой tagelements.php код — это :
jimport('joomla.form.formfield');
class JFormFieldTagElements extends JFormField
{
protected $type = 'tagelements'; //the form field type
protected function getInput()
{
return '<input type="text" name="'.$this->name.'" id="'.$this->id.'" label="Title"/><br />'.
'<input type="text" name="Link" id="Link" label="Link"/><br />'.
'<input type="text" name="Order" id="order" label="order"/><br />'.
'<input type="button" id="btnAdd" name="addmore" value="Add more">
<input type="button" id="btnDel" value="Remove" />';
}
У меня есть две кнопки, добавить и удалить, которые с помощью jQuery добавят больше этих полей при нажатии. Поля будут удалены при нажатии кнопки удаления.
Когда я запускаю этот код, отображаются 4 текстовых поля и две кнопки. Но когда я сохраняю форму, в базе данных сохраняется только значение первого текстового поля.
Я хочу, чтобы все поля были сохранены. Кто-нибудь может мне помочь?
Комментарии:
1. Пожалуйста, покажите свой код jQuery, который вы используете для добавления / удаления полей
2. Как вы планируете хранить динамически создаваемые поля в статической базе данных? Один из способов — использовать json для кодирования полей и сохранения их в поле свойств в базе данных
3.
$this->name
имеет строку, подобную jform , поэтому вам также нужно добавить ее вручную / программно к названию элементов Link и Order . Это становится, скажем<input type="text" name="jform[Link]" id="jform_Link" label="Link"/>
Ответ №1:
Я считаю, что поля пользовательских форм предназначены только для создания одного поля формы, поэтому при сохранении формы не будут ожидаться последующие поля.
Вероятно, сработало бы, если бы ваше основное поле (с именем «$this-> name») было скрытым полем, которое ваш jquery затем заполняет другими данными при отправке (возможно, в формате json).
Ответ №2:
Если вам нужны данные для всех трех доступных серверных частей, они действительно должны быть тремя отдельными текстовыми полями в вашем файле определения формы XML. Ваше пользовательское поле просто объединяет три стандартных текстовых поля в одно, но, как отмечалось в предыдущем постере, пользовательские поля в Joomla ориентированы на обработку одного поля.
«Лучшее» решение зависит от того, что вы хотите сделать с данными и где это делается на стороне сервера кода.