CakePHP update multiple elements in one div
Posted
by sw3n
on Stack Overflow
See other posts from Stack Overflow
or by sw3n
Published on 2010-05-11T08:17:53Z
Indexed on
2010/05/11
8:24 UTC
Read the original article
Hit count: 212
The idea is that I've 3 ajax links and each link is coupled to one single element (a form). The element will be loaded in one div. Each time when you click on a different link, the element that is requested before must be removed and the new one must come in there. So it has to update the DIV. The problem is, that it request the element, but it does not remove the other one. So when you click one the first link, it shows the first element, click on the second link and it puts the second element beneath them, and with the third one will happen exactly the same. If you clicked all the 3 links, it shows 3 forms right under each other.
Some Code:
Controller:
function view($id) {
// content could come from a database, xml, etc.
$content = array (
array($this->render(null, 'ajax', '/elements/ga')),
array($this->render(null, 'ajax', '/elements/ex')),
array($this->render(null, 'ajax', '/elements/both'))
);
$this->set('google', $content[$id][0]);
// use ajax layout
$this->render('/pages/form', 'ajax');
}
View code:
echo $ajax->link( 'Google', array( 'controller' => 'analytics', 'action' => 'view', 0 ), array( 'update' => 'dynamic1'));
echo ' | ';
echo $ajax->link( 'Exact', array( 'controller' => 'analytics', 'action' => 'view', 1 ), array( 'update' => 'dynamic1', 'loading' => 'Effect.BlindDownUp(\'dynamic1\')'));
echo ' | ';
echo $ajax->link( 'Beide', array( 'controller' => 'analytics', 'action' => 'view', 2 ), array( 'update' => 'dynamic1', 'loading' => 'Effect.BlindDown(\'dynamic1\')' ));
echo $ajax->div('dynamic1'); echo $google; echo $ajax->divEnd('dynamic1');
© Stack Overflow or respective owner