Сессии Joomla в цикле передают только одно значение

Мне нужно передать некоторые переменные из one PHP module в another PHP module в цикле и в то же время отображать модуль несколько раз. Я использую Joomla sessions для передачи переменных, и это дает мне некоторые проблемы. Только второе значение переменной передается во второй модуль, что означает только значение, полученное переменной, когда loop is over передается во второй модуль, хотя я использую sessions within the loop.

  

Первый модуль

for ($i=1;$i<5;$i++) 
{
    $session = JFactory::getSession();
    $session->set('number', $i);

    // calling second module by position

    $modules = JModuleHelper::getModules("second-position");
    foreach($modules as $mod)
      {
         echo JModuleHelper::renderModule($mod, $attribs);
      }
}
  

Второй модуль

$session = JFactory::getSession();
$x = $session->get('number');

echo $x;
  

Вывод, я получаю

4 4 4 4

  

Желаемый результат

1 2 3 4

Что случилось, и как его исправить? Спасибо заранее.

2 голоса | спросил saibbyweb 26 PM00000060000004631 2016, 18:40:46

1 ответ


1

Хорошо, я вижу проблему сейчас. Это потому, что вы каждый раз переопределяете переменную сеанса в цикле.

Вместо этого попробуйте следующее:

  

Первый модуль

$session = JFactory::getSession();
$modules = JModuleHelper::getModules('second-position');

for ($i=1; $i<5; $i++) 
{
    $session->set('number', $i);

    foreach($modules as $mod)
    {
        echo JModuleHelper::renderModule($mod, $attribs);
    }
}
  

Второй модуль

$session = JFactory::getSession();

for ($i=1; $i<5; $i++) 
{
    echo $session->get('number' . $i);
}

Update

Не помещайте петлю в цикл. Вы можете просто получить то, что хотите:

$session = JFactory::getSession();

for ($i=1; $i<5; $i++) 
{
    $session->set('number' . $i, $i);
    echo $session->get('number' . $i);
}
ответил Lodder 28 PM000000120000000931 2016, 12:24:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132