Моя проблема связана с 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');
}
}