After build form, we need code for data processing. When the data in form is filled out and the admin clicks the Save button, we need to save the information into database.
function saveHello(){
global $mainframe;
$row =& JTable::getInstance('hello', 'Table');
if(!$row->bind(JRequest::get('post')))
{
JError::raiseError(500, $row->getError() );
}
$row->message = JRequest::getVar( 'message', '','post', 'string', JREQUEST_ALLOWRAW );
if(!$row->store()){
JError::raiseError(500, $row->getError() );
}
$mainframe->redirect('index.php?option=com_hello', 'Message Saved');
}
case 'save'; saveHello(); break;
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS. 'com_hello'.DS.'tables');
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
// to include admin.hello.html.php
require_once( JApplicationHelper::getPath( 'admin_html' ) );
// Set the table directory
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.
'com_hello'.DS.'tables');
$task = JRequest::getCmd('task');
// checks the $task variable and choose an appropiate function
switch($task){
case 'add':
addHello();
break;
case 'cancel';
showHello();
break;
case 'save';
saveHello();
break;
default:
showHello();
break;
}
function addHello(){
$lists['published'] = JHTML::_('select.booleanlist', 'published' , 'class="inputbox"', $row->published);
// display function
HTML_contact::addHello($lists);
}
function showHello(){
// display function
HTML_contact::showHello();
}
function saveHello(){
global $mainframe;
$row =& JTable::getInstance('hello', 'Table');
if(!$row->bind(JRequest::get('post')))
{
JError::raiseError(500, $row->getError() );
}
$row->message = JRequest::getVar( 'message', '','post', 'string', JREQUEST_ALLOWRAW );
if(!$row->store()){
JError::raiseError(500, $row->getError() );
}
$mainframe->redirect('index.php?option=com_hello', 'Message Saved');
}
?>
Point your browser to http://localhost/joomla/administrator/index.php?option=com_hello&task=add. Enter a data to the form. Click save button on the top right. If success, you will get a message like following images: