Back to top

Autore Topic: [Risolto] Mancato redirect  (Letto 1544 volte)

Offline Alhazred

  • Appassionato
  • ***
  • Post: 289
    • Mostra profilo
[Risolto] Mancato redirect
« il: 30 Apr 2011, 10:39:03 »
Nel controller di un un componente, dopo aver inviato dei dati da frontend questi vengono elaborati e salvati nel db.
Fin qui tutto ok, il problema arriva quando si deve effettuare il redirect.

La funzione che si occupa della manipolazione dei dati finisce così

if (!$row->store()) 
{
	
echo 
"<script type='text/javascript'>
	
	
	
alert('"
.$row->getError()."');
	
	
	
window.history.go(-1);
	
	
  </script>\n"
;
	
exit();
}
$this->redirect('index.php?option=' $option '&id=' $post['pollid'] . '&view=poll'JTEXT::_(CRDPOLL_VOTE_ADDED));

la store() va a buon fine tant'è che nel db trovo i dati e sono correttamente disponibili dal resto del componente, il redirect però mi porta ad una pagina bianca con solo il titolo del componente.

Il link che viene fornito alla funzione redirect è giusto, ho messo queste righe nel codice per provare

echo 'index.php?option=' $option '&id=' $post['pollid'] . '&view=poll' ' --- ' JTEXT::_(CRDPOLL_VOTE_ADDED);
$this->redirect('index.php?option=' $option '&id=' $post['pollid'] . '&view=poll'JTEXT::_(CRDPOLL_VOTE_ADDED));
echo 
"<pre>";
print_r($this);
echo
"</pre>";

Il primo echo mi stampa il link per il redirect ed è corretto, facendo copia/incolla sulla barra degli indirizzi mi porta alla pagina che voglio.
print_r($this) mi stampa questo:
Codice: [Seleziona]
CommpollsController Object
(
    [_basePath] => C:\xampp\htdocs\joomla\j15x\prove\components\com_commpolls
    [_name] => commpolls
    [_methods] => Array
        (
            [0] => addvote
            [1] => display
        )

    [_taskMap] => Array
        (
            [addvote] => addvote
            [display] => display
            [__default] => display
        )

    [_task] => addvote
    [_doTask] => addvote
    [_path] => Array
        (
            [view] => Array
                (
                    [0] => C:\xampp\htdocs\joomla\j15x\prove\components\com_commpolls\views\
                )

        )

    [_redirect] =>
    [_message] =>
    [_messageType] => message
    [_acoSection] =>
    [_acoSectionValue] =>
    [_errors] => Array
        (
        )

    [_data] => Array
        (
        )

    [redirect] => index.php?option=com_commpolls&id=1&view=poll
)
Perché poi non vengo inviato alla pagina index.php?option=com_commpolls&id=1&view=poll ?
Nell'entry point del componente ovviamente ho

$controller 
= new CommpollsController();
$controller->executeJRequest::getVar'task' ) );
$controller->redirect();
« Ultima modifica: 30 Apr 2011, 11:36:17 da Alhazred »

Offline Alhazred

  • Appassionato
  • ***
  • Post: 289
    • Mostra profilo
Re:Mancato redirect
« Risposta #1 il: 30 Apr 2011, 11:35:57 »
Risolto, andava usato setRedirect

 



Web Design Bolzano Kreatif