Session neuen Wert hinzufügen

xtramen01

Erfahrenes Mitglied
Hi Leute,

ich habe ein Session Array das wie folgt ausschaut:

Array ( [11] => Array ( [0] =>test 1 [1] => test 2 ) )

Das Array fülle ich folgendermaßen:

PHP:
if (isset($_POST['text_id'])) $_SESSION['text_eingabe'] = $_POST['text_id'];

Das Textfeld sieht so aus:

HTML:
<input type="text" name="text_id[11][]">

Wenn ich jetzt eine neue Artikelnummer habe z.b. 12 und sende das Formular ab, dann wird die Session nicht erweitert sondern komplett erneuert und der Eintrag mit der id 11 ist weg.

Kann mir jemand auf die Sprünge helfen?
Ich will die Session ergänzen und wenn ein Eintrag gesendet wird mit einer id, die in der Session schon existiert, diesen Eintrag überschreiben.

Habe es so probiert. geht aber auch nicht :-(
PHP:
if(array_key_exists($_POST['products_id'], $_SESSION['text_eingabe'])){
       $_SESSION['text_eingabe'] = $_POST['text_id'];
    }else{
      $_SESSION['text_eingabe'][] = $_POST['text_id'];
    }
    }

Gruss und Danke
 
Zuletzt bearbeitet:
Moin,

das sollte so klappen:

Code:
if(!isset($_SESSION['text_eingabe']))$_SESSION['text_eingabe']=array();
if (isset($_POST['text_id']) && is_array($_POST['text_id'])) 
{
 foreach($_POST['text_id'] as $k=>$v)
 {
   $_SESSION['text_eingabe'][$k] = $v;
 }  
}

BTW: wozu hast du das leere Klammerpäärchen im Textfeldnamen?
 
Einfacher wäre die Verwendung der Funktion array_push(...) gewesen: http://php.net/manual/de/function.array-push.php

Code:
if(array_key_exists($_POST['products_id'], $_SESSION['text_eingabe'])) { 
  $_SESSION['text_eingabe'] = $_POST['text_id']; 
}else{ 
  array_push($_SESSION['text_eingabe'], $_POST['text_id']); 
}

@Sven: Das leere Klammerpärchen könnte er haben, weil er mehrere Felder mit dem Namen text_id[11] hat und ein Array von allen text_id[11]-Felder übergeben bekommen möchte. - Ist aber nur eine Vermutung natürlich.
 
Zuletzt bearbeitet:
Zurück