it-swarm.com.de

Joomla-Sitzungen innerhalb einer Schleife, die nur einen einzelnen Wert übergeben

Ich muss einige Variablen von one PHP module Bis another PHP module Innerhalb einer Schleife übergeben und gleichzeitig das Modul mehrmals anzeigen. Ich benutze Joomla sessions Um Variablen zu übergeben und es bereitet mir Probleme. Nur das letzter Wert der Variablen wird an das zweite Modul übergeben, dh nur der Wert, den eine Variable erreicht, wenn der loop is over An das zweite Modul übergeben wird, obwohl ich sessions within the loop.

Erstes Modul

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);
      }
}

Zweites Modul

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

echo $x;

Ausgabe bekomme ich

4444

Gewünschte Ausgabe

1234

Was ist los und wie kann man das korrigieren? Danke im Voraus.

2
saibbyweb

Ok, ich sehe das Problem jetzt. Dies liegt daran, dass Sie die Sitzungsvariable jedes Mal in der Schleife überschreiben.

Versuchen Sie stattdessen Folgendes:

Erstes Modul

$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);
    }
}

Zweites Modul

$session = JFactory::getSession();

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

Aktualisieren

Setzen Sie die Schleife nicht in die Schleife ein. Sie können einfach erreichen, was Sie wollen mit:

$session = JFactory::getSession();

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