After create list screen, now we will build form editing data. You can edit a data by click id row in list table. Then, form editing data will display. Click save or apply button to save data.
- Open "admin.hello.html.php" file, and add following bold code to showhello():
<?php $k = 0; for($i=0, $n=count($rows); $i < $n ; $i++) { $row = &$rows[$i]; $checked = JHTML::_('grid.id', $i, $row->id); $published = JHTML::_('grid.published', $row, $i); // prepare link for id column $link = JRoute::_( 'index.php?option=com_hello &task=edit&cid[]='. $row->id ); ?< <tr class="<?php echo "row$k"; ?>"> <td><?php echo $checked?></td> // show link, that will clicked to go to edit form page <td><a href="<?php echo $link; ?>"> <?php echo $row->id?></a></td> <td><?php echo $row->message?></td> <td><?php echo $published?></td> </tr> <? $k = 1 - $k; } ?> - Add editHello() function:
function editHello(&$lists, &$row){ JRequest::setVar( 'hidemainmenu', 1 ); $editor =& JFactory::getEditor(); ?> <script language="javascript" type="text/javascript"> <!-- function submitbutton(pressbutton) { var form = document.adminForm; if (pressbutton == 'cancel') { submitform( pressbutton ); return; } submitform( pressbutton ); } //--> </script> <form action="index.php" method="post" name="adminForm"> <table class="admintable"> <tr> <td class="key"> <label for="message"> <?php echo JText::_( 'Message' ); ?>: </label> </td> <td > <?php echo $editor->display('message', $row->message,'100%','250','40','6'); ?> </td> </tr> <tr> <td class="key"> <label for="message"> <?php echo JText::_( 'Published' ); ?>: </label> </td> <td > <?php echo $lists['published']; ?> </td> </tr> </table> <input type="hidden" name="option" value="com_hello" /> <input type="hidden" name="id" value="<?php echo $row->id?>" /> <input type="hidden" name="cid[]" value="<?php echo $row->id; ?>" /> <input type="hidden" name="task" value="" /> </form> <?php } - Open "admin.hello.php", add following code:
$task = JRequest::getCmd('task'); $id = JRequest::getVar('id', 0, 'get', 'int'); - update like following code:
switch($task){ case 'edit': editHello(); break; case 'add': addHello(); break; case 'cancel'; showHello(); break; case 'save'; case 'apply'; saveHello(); break; default: showHello(); break; } - Add editHello() function:
function editHello() { $db =& JFactory::getDBO(); $cid = JRequest::getVar('cid', array(0), '', 'array'); JArrayHelper::toInteger($cid, array(0)); $id = $cid[0]; $row =& JTable::getInstance('hello', 'Table'); // load the row from the db table $row->load( $id); $lists = array(); $lists['published'] = JHTML::_('select.booleanlist', 'published' , 'class="inputbox"', $row->published); // display function HTML_contact::editHello(&$lists, &$row); } - Last, open "toolbar.hello.php". update like following code:
switch ( $task ) { case 'add' : case 'edit' : TOOLBAR_hello::_NEW(); break; default: TOOLBAR_hello::_DEFAULT(); break; }

