Обработка POST контроллера и передача информации на отображение в GET контроллер

В Post в моде import я обрабатываю кнопку которую нажал пользователь и формирую массив (для примера написала обычный массив). Как мне его передать на отображение? Подскажите пожалуйста!



if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {



if ($mode == ‘import’) {





$a = array(“один”, “two”, “three”);

$b = array(“one”, “two”, “three”);

$c = array(“uno”, “dos”, “tres”);



$d = array_map(null, $a, $b, $c);



}

return array(CONTROLLER_STATUS_OK, ‘csv_import.import’);

}



if ($mode == ‘import’) {



Tygh::$app[‘view’]->assign(‘promotions’, $d);

}

[quote name=‘Surok’ timestamp=‘1436969809’ post=‘223057’]

В Post в моде import я обрабатываю кнопку которую нажал пользователь и формирую массив (для примера написала обычный массив). Как мне его передать на отображение? Подскажите пожалуйста!



if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {



if ($mode == ‘import’) {





$a = array(“один”, “two”, “three”);

$b = array(“one”, “two”, “three”);

$c = array(“uno”, “dos”, “tres”);



$d = array_map(null, $a, $b, $c);



}

return array(CONTROLLER_STATUS_OK, ‘csv_import.import’);

}



if ($mode == ‘import’) {



Tygh::$app[‘view’]->assign(‘promotions’, $d);

}

[/quote]



Никак. POST запрос всегда заканчивается редиректом. Можно конечно массив передать и в URL при редиректе, но зачем.



POST запрос - что то делает (запись в базу, удаление) и редиректит на GET .



Если у Вас импорт и нужно показать результат после редиректа, то:

  1. Пишем в $_SESSION с помощью функции

fn_set_session_data('key', $data);

2. Забираем при отображении:

1 лайк

Получилось! Огромное спасибо!) Все так просто оказалось. Только 2 дня мучений жалко))

[color=#282828][font=arial, verdana, tahoma, sans-serif]Если у Вас импорт и нужно показать результат после редиректа, то:[/font][/color]

[color=#282828][font=arial, verdana, tahoma, sans-serif]1. Пишем в $_SESSION с помощью функции[/font][/color]

[color=#000000]fn_set_session_data[/color][color=#666600]([/color][color=#008800]'key'[/color][color=#666600],[/color][color=#000000] $data[/color][color=#666600]);[/color]

[color=#282828][font=arial, verdana, tahoma, sans-serif]2. Забираем при отображении:[/font][/color]

[color=#000000]$data [/color][color=#666600]=[/color][color=#000000] fn_get_session_data[/color]color=#666600;[/color]





[color=#666600]Хммм. Теперь проблема в другом.[/color]

[color=#666600]Каждый раз один и тот же массив выводится. Я так подозреваю что нужно использовать [/color]fn_delete_session_data. Но как? Куда написать и главное как?

[quote name='Surok' timestamp='1436973677' post='223068']

[color=#282828][font=arial, verdana, tahoma, sans-serif]Если у Вас импорт и нужно показать результат после редиректа, то:[/font][/color]

[color=#282828][font=arial, verdana, tahoma, sans-serif]1. Пишем в $_SESSION с помощью функции[/font][/color]

[color=#000000]fn_set_session_data[/color][color=#666600]([/color][color=#008800]'key'[/color][color=#666600],[/color][color=#000000] $data[/color][color=#666600]);[/color]

[color=#282828][font=arial, verdana, tahoma, sans-serif]2. Забираем при отображении:[/font][/color]

[color=#000000]$data [/color][color=#666600]=[/color][color=#000000] fn_get_session_data[/color]color=#666600;[/color]





[color=#666600]Хммм. Теперь проблема в другом.[/color]

[color=#666600]Каждый раз один и тот же массив выводится. Я так подозреваю что нужно использовать [/color]fn_delete_session_data. Но как? Куда написать и главное как?

[/quote]



Для начала, вообще не понятно, что вы делаете.



Если вам нужно каждый раз разное выводить, то ключ используйте другой, опять же, почему каждый раз разное, что делать со старыми данными ?



Я перенесу переписку в отдельную тему.

[quote name='Surok' timestamp='1436973677' post='223068']

[color=#666600]Хммм. Теперь проблема в другом.[/color]

[color=#666600]Каждый раз один и тот же массив выводится. Я так подозреваю что нужно использовать [/color]fn_delete_session_data. Но как? Куда написать и главное как?

[/quote]



Расскажите, что делаете.



Кнопка форму отправляет? Зачем её POST обрабатывать?

Делаю импорт csv-файла. пользователь загружает его на сайт нажимают на кнопку импорт.

В Post в моде эти данные добавляются в базу данных и собственно теперь нужно вывести на экран.

Один раз получилось сделать. Но теперь всегда одно и тоже выдает.

Теперь опять перестало выводить)

[quote name='Surok' timestamp='1436976417' post='223082']

Делаю импорт csv-файла. пользователь загружает его на сайт нажимают на кнопку импорт.

В Post в моде эти данные добавляются в базу данных и собственно теперь нужно вывести на экран.

Один раз получилось сделать. Но теперь всегда одно и тоже выдает.

[/quote]



Что выводить то?



Почему не подходит стандартный импорт CSV, который прекрасно расширяется, без изобретения собственных контроллеров.



Смотрите, функция которую я вам сказал, сохраняет массив в сессию, он там будет висеть пока вы его не удалите или пока сессия не очистится.



Соответственно, если вам нужно показать что то один раз, то показывайте и очищайте сразу, функцией fn_delete_session_data



GET контроллер только отображает, получает из базы из сессии , передаёт в смарти, смарти отрисовывает.



Можете посмотрите мои видео, о том как я делал модуль импорта из YML файла, там я тоже это использую.

http://www.youtube.com/watch?v=5qD4w69AR0w&list=PL4okpC0OV7TTkHtIu8gPcgqdYXl1z8qj9&index=15



А если делаете импорт из CSV, то рекомендую не придумывать лишние инструменты, а разрабатывать импорт встроенными средствами с помощью модуля.



http://www.youtube.com/watch?v=yJSJO2fZ_iA&index=41&list=PL4okpC0OV7TTa1iFmcPTL-outH4wEMJQW

У меня задание такое - самой сделать импорт)) И научиться)

Видео мне ваши помогли немного в этом))



А fn_delete_session_data как писать надо? Так fn_delete_session_data(); ???

[quote name='Surok' timestamp='1436984356' post='223100']

У меня задание такое - самой сделать импорт)) И научиться)

Видео мне ваши помогли немного в этом))



А fn_delete_session_data как писать надо? Так fn_delete_session_data(); ???

[/quote]



Можно поиском по дистрибутиву найти функцию и посмотреть входящие параметры.



Функция удаляет ключики



fn_delete_session_data('key');

Спасибо за ответы!

Вот что нашла) Он в консоле мне правильно выводит ведь все, а на экране прошлый массив :confused:

http://i.imgur.com/4lqwBuF.png



Теперь я в сомнениях

В общем, после обновления страницы все-таки правильная информация выводится.

Мммм, а чтобы сразу она выводилась нужно наверное скрипт написать на обновление блока с таблицей. Все ясно

Так как задача фантазийная, то могу только на видео уроки отправить :)