За последние 24 часа нас посетили 19966 программистов и 1638 роботов. Сейчас ищут 2012 программистов ...

Переадрисация на страницу после отправки формы

Тема в разделе "Сделайте за меня", создана пользователем Espey, 25 ноя 2016.

  1. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
    Есть такая форма:

    Код (Text):
    1. <?php
    2. /**
    3. * @package    phocaguestbook
    4. * @subpackage Views
    5. * @copyright  Copyright (C) 2012 Jan Pavelka www.phoca.cz
    6. * @license    http://www.gnu.org/copyleft/gpl.html GNU/GPL
    7. */
    8. defined('_JEXEC') or die('Restricted access');
    9.  
    10. jimport('joomla.html.html.bootstrap');
    11. JHtml::_('behavior.keepalive');
    12. JHtml::_('behavior.formvalidation');
    13. JHtml::_('behavior.tooltip');
    14. JHTML::_('behavior.modal');
    15.  
    16. // - - - - - - - - - - -
    17. // Form
    18. // - - - - - - - - - - -
    19. if ($this->params->get('show_form') == 1) : ?>
    20. <div class="well pgwell pgb_background pgb_sec_font">
    21.     <h4 class="pgb_font"><?php echo JText::_('COM_phocaguestbook_POST_MESSAGE');?></h4>
    22.     <form action="<?php echo JRoute::_('index.php'); ?>" method="post" name="adminForm" id="adminForm" class="form-validate form-horizontal">
    23.    
    24.     <?php if ($this->params->get('display_title_form')) : ?>
    25.         <div class="control-group">
    26.             <div class="control-label"><?php echo $this->form->getLabel('title'); ?></div>
    27.             <div class="controls"><?php echo $this->form->getInput('title');
    28.                 if($this->params->get('hidden_field_position')==1){echo $this->form->getInput($this->params->get('hidden_field_name'));}  ?></div>
    29.         </div>  
    30.     <?php    endif;
    31.     if ($this->params->get('display_name_form')) :?>
    32.         <div class="control-group">
    33.             <div class="control-label"><?php echo $this->form->getLabel('username'); ?></div>
    34.             <div class="controls"><?php echo $this->form->getInput('username');
    35.                 if($this->params->get('hidden_field_position')==2){echo $this->form->getInput($this->params->get('hidden_field_name'));}  ?></div>
    36.         </div>  
    37.     <?php    endif;
    38.     if ($this->params->get('display_email_form')) : ?>
    39.         <div class="control-group">
    40.             <div class="control-label"><?php echo $this->form->getLabel('email'); ?></div>
    41.             <div class="controls"><?php echo $this->form->getInput('email');
    42.                 if($this->params->get('hidden_field_position')==3){echo $this->form->getInput($this->params->get('hidden_field_name'));}  ?></div>
    43.         </div>  
    44.     <?php    endif;
    45.     if ($this->params->get('display_website_form')) : ?>
    46.         <div class="control-group">
    47.             <div class="control-label"><?php echo $this->form->getLabel('homesite'); ?></div>
    48.             <div class="controls"><?php echo $this->form->getInput('homesite');
    49.                 if($this->params->get('hidden_field_position')==4){echo $this->form->getInput($this->params->get('hidden_field_name'));}  ?></div>
    50.         </div>  
    51.     <?php    endif;
    52.     if ($this->params->get('display_content_form')) : ?>
    53.         <div class="control-group">
    54.             <div class="control-label"><?php echo $this->form->getLabel('content'); ?></div>
    55.             <div class="controls"><?php echo $this->form->getInput('content');
    56.                 if($this->params->get('hidden_field_position')==5){echo $this->form->getInput($this->params->get('hidden_field_name'));}  ?></div>
    57.         </div>
    58.     <?php    endif;
    59.     if ($this->params->get('enable_captcha') && $this->params->get('captcha_id') > 0) :
    60.         // Set fix height because of pane slider
    61.         $maxImageHeight = '';/*'style="height:100px"';*/?>
    62.         <div class="control-group" <?php echo $maxImageHeight;?>>
    63.             <div class="control-label"><?php echo $this->form->getLabel('captcha'); ?></div>
    64.             <div class="controls">
    65.                 <?php /* OWN CAPTCHA
    66.                 if ($this->params->get(captcha_id) == 4) {
    67.                     echo phocaguestbookHelperReCaptcha::recaptcha_get_html($this->params->get('recaptcha_publickey'));
    68.                 } else {
    69.                     echo phocaguestbookHelperFront::getCaptchaUrl($this->id);
    70.                 }
    71.                 //Remove because of IE6 - href="javascript:void(0)" onclick="javascript:reloadCaptcha();"
    72.                 ?><br />
    73.             <div class="input-append">
    74.                 <?php echo $this->form->getInput('guestbook_captcha'); ?>
    75.                 <a href="javascript:reloadCaptcha();" title="<?php echo JText::_('COM_PHOCAGUESTBOOK_RELOAD_IMAGE');?>" class="btn hasTooltip" ><i class="icon-loop"></i></a>
    76.             </div> JOOMLA CAPTCHA:*/?>
    77.             <?php echo $this->form->getInput('captcha'); ?>
    78.             </div>
    79.         </div>
    80.     <?php    endif; ?>
    81.    
    82.     <div class="btn-toolbar">
    83.         <div class="btn-group">
    84.             <button type="submit" class="btn btn-primary" >
    85.                  <?php echo JText::_('COM_PHOCAGUESTBOOK_SUBMIT');?></button>
    86.         </div>
    87.         <div class="btn-group">
    88.            
    89.         </div>
    90.     </div>      
    91.  
    92.     <?php echo $this->form->getInput('language'); ?>
    93.     <input type="hidden" name="view" value="guestbook" />
    94.     <input type="hidden" name="controller" value="phocaguestbook" />
    95.     <input type="hidden" name="cid" value="<?php echo $this->guestbooks->id;?>" />
    96.     <input type="hidden" name="option" value="com_phocaguestbook" />
    97.     <input type="hidden" name="task" value="phocaguestbook.submit" />
    98.     <?php echo JHtml::_('form.token');?>
    99.    
    100.     </form>
    101. </div>
    102. <?php
    103. endif; //showForm
    104. ?>
    Как в ней сделать переадрисацию на другую страницу, после отправки формы? Заранее благодарен за ответ.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    думаю нужно в controller который обрабатывает форму делать переадресацию, а не во view.
    для своей версии joomla посмотри в документации какую нужно вызвать функцию для переадресации
     
  3. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
    Я тоже думаю, что в controllers нужно делать, только где документацию посмотреть?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
    Поставил в controllers везде где есть редирект:

    Код (Text):
    1. $this->setRedirect(JRoute::_('index.php', false));
    Не чего не работает.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    какая версия Joomla API?
    не понял, нет одного нужного места? его не нашёл?
     
  7. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  9. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
    А это редирект после отправки формы или просто редирект?

    И куда его лучше вставить?
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Espey куда вставить, не понятно без кода, могу только погадать, что в controller есть action который отвечает за форму и вот там в коде который отвечает за действие когда данные из формы приняты и успешно всё прошло, туда и надо вставлять
     
  11. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
    Вот компонент https://yadi.sk/d/EFQOdbmZzWQ2z

    Можете глянуть, а то я искал через поиск файлы с текстом action, нашел, но все равно не понял куда нужно вставить.

    Там в controllers c action и php комментариями не подходит. По этому не знаю куда вставлять.
     
    #11 Espey, 26 ноя 2016
    Последнее редактирование: 26 ноя 2016
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    в файле что в папке контролеры на 435 строке, может там поменять ссылку для редиректа на нужную?
     
  13. Espey

    Espey Зэк
    [ БАН ]

    С нами с:
    25 ноя 2016
    Сообщения:
    129
    Симпатии:
    4
    Работает, спасибо. Ура.