Le sauvegarde des enregistrements en joomla

débuteur joomla -  
 prophet design -
Bonjour,
je suis entrain de créer un nouveau composant "Restaurant Reviews "avec joomla en suivant un tutoriel que je l'ai trouver sur internet
tout marche bien mais le bouton sauver et le bouton appliquer ne font pas l'insertion dans la base de donnée et envoie une page vide alors qu'il faut retourner a la page où nous avons tous les enregistrements.le bouton supprimer marche bien
merci de me donner une solution
A voir également:

5 réponses

Gift08
 
J'ai le meme probleme et j'ai vraiment besoin de solution. C'est très important
0
Tartopom
 
Bonjour à tous,
même problème : le bouton "Sauver" et "Appliquer" me renvoie à la page de login administrateur, au lieu de retourner à la liste des enregistrements. La suppression fonctionne.
Le message est un peu ancien, mais si quelqu'un passe par là et a une solution...
0
sho Messages postés 183 Statut Membre 49
 
Bonjour ,
cela provient peut-être de la durée de vie du cache limitée par défaut à 15 minutes ;
Donc si en Admin tu bosses + de 15 mn avant d'enregistrer , retour à l'écran de connexion ....
Pour changer , se connecter en Admin , configuration , onglet Système , et partie à droite , cadre paramètres du cache , rentrer une durée au choix -
A tester
Cordialement
Shô
0
Tartopom
 
Bonjour,
j'ai le défaut immédiatement, dès que je me connecte, et cela fonctionne si je supprime un enregistrement, c'est seulement si je veux sauvegarder ou appliquer. Voici mon code :

<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once( JApplicationHelper::getPath( 'admin_html' ) );
JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');
switch($task)
{
case 'edit':
case 'add':
editAgent( $option );
break;
case 'apply':
case 'save':
sauveAgent( $option, $task );
break;
case 'remove':
supAgent( $option );
break;
default:
listeAgents( $option );
break;
}
function editAgent( $option )
{
$row =& JTable::getInstance('annuaire', 'Table');
$cid = JRequest::getVar( 'cid', array(0), '', 'array' );
$id = $cid[0];
$row->load($id);
HTML_annuaire::editAgent($row, $lists, $option);
}

function sauveAgent( $option, $task )
{
global $mainframe;
$row =& JTable::getInstance('annuaire', 'Table');
if (!$row->bind(JRequest::get('post')))
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}
if (!$row->store())
{
echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
exit();
}

switch ($task)
{
case 'apply':
$msg = 'Modification effectuée';
$link = 'index.php?option=' . $option . '&task=edit&cid[]='. $row->id;
break;

case 'save':
default:
$msg = 'Enregistrement sauvegardé';
$link = 'index.php?option=' . $option;
break;
}
$mainframe->redirect($link, $msg);

}

function listeAgents( $option )
{
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__agents";
$db->setQuery( $query );
$rows = $db->loadObjectList();
if ($db->getErrorNum()) {
echo $db->stderr();
return false;
}
HTML_annuaire::listeAgents( $option, $rows );
}

function supAgent( $option )
{
global $mainframe;
$cid = JRequest::getVar( 'cid', array(), '', 'array' );
$db =& JFactory::getDBO();
if(count($cid))
{
$cids = implode( ',', $cid );
$query = "DELETE FROM #__agents WHERE id IN ( $cids )";
$db->setQuery( $query );
if (!$db->query())
{
echo "<script> alert('".$db->getErrorMsg()."');
window.history.go(-1); </script>\n";
}
}
$mainframe->redirect( 'index.php?option=' . $option );
}
?>
0
Tartopom
 
Bon je crois que j'ai trouvé : en fait il n'aime pas les caractères accentués dans $msg (effectué, sauvegardé,...), en effet si je les enlève cela fonctionne, ou bien je remplace le é par & + eacute";

Bonne continuation.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
prophet design
 
moi aussi j'ai eu des problèmes comme les votres avec la fonction apply et save, je vais essayer de vous expliquer comment régler ça simplement.

dans le model ajouter :

function store($data)
	{
	
		global $mainframe, $option;

$mainframe->redirect('index.php?option='.$option.'&controller=votre controller&task=edit&cid='.$id, JText::_( 'APPLYED' ));


Voilà j'espère avoir aidé qqn...
0