Joomla - Component: Editing DataTag: joomla, cms, Joomla Component Category: PHP Framework post: 05 Nov 2007 read: 4,141
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;
}
|
|
| Give Your Opinion | Recommend
|