В 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 .
Если у Вас импорт и нужно показать результат после редиректа, то:
- Пишем в $_SESSION с помощью функции
fn_set_session_data('key', $data);
2. Забираем при отображении:
Получилось! Огромное спасибо!) Все так просто оказалось. Только 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');
Спасибо за ответы!
Вот что нашла) Он в консоле мне правильно выводит ведь все, а на экране прошлый массив
http://i.imgur.com/4lqwBuF.png
Теперь я в сомнениях
В общем, после обновления страницы все-таки правильная информация выводится.
Мммм, а чтобы сразу она выводилась нужно наверное скрипт написать на обновление блока с таблицей. Все ясно
Так как задача фантазийная, то могу только на видео уроки отправить