Моя проблема связана с jQuery .post и Joomla. У меня есть шаблон с формой, которая находится в одной из областей аккордеона (с использованием аккордеона JQuery UI). У меня есть кнопка type = submit в форме. HTML-форма создается с помощью jQuery, когда пользователь нажимает кнопку в области аккордеона.
Когда пользователь нажимает кнопку отправки формы, событие вызывает jQuery.post, который затем должен вызывать функцию сохранения внутри контроллера, которая, в свою очередь, вызывает функцию сохранения в БД в модели.
URL для .post - это index.php, и я сериализирую () входные данные формы - со скрытыми элементами, у меня задана функция сохранения, которая находится внутри контроллера, и также определен контроллер.
Проблема в том, что задача сохранения в контроллере не вызывается при нажатии кнопки, а также функция сохранения в дб в модели. После того, как пользователь нажимает на кнопку, страница перенаправляется на index.php (домашняя страница). Нет сохранения в базе данных.
Любая помощь будет высоко ценится.
элементы формы template.php:
<input type="hidden" name="controller" value="controller" />
<input type="hidden" name="task" value="saveProgramUI" />'
.js Код:
jQuery('#new_program_form').submit( function () {
if (jQuery('#new_program_form').valid()) {
jQuery.post("index.php", jQuery("#new_program_form").serialize(), function(html){
alert("Data Loaded: " + html);
});
}
});
Код контроллера:
function saveProgramUI(){
$program = JRequest::get( 'POST' );
$model = & $this->getModel('pfm');
$model->saveProgramUI($program);
$resp = "Hello World!";
return $resp;
}
Код модели:
function saveProgramUI($program)
{
$programTableRow =& $this->getTable('programs');
// Bind the form fields to the programs table, save to db
if (!$programTableRow->save($program)) {
JError::raiseError(500, 'Error saving program');
}
}