Я понимаю, что array_push не добавляет 2-й элемент, потому что, когда страница обновляется после добавления другого элемента, оригинальный элемент исчезает и получает замену самой последней записью из текстового поля.
Я пытаюсь достичь этой тактики, пытаясь либо …
а. Пусть сеанс запомнит следующий добавляемый элемент через обновление страницы.
или же
б. Просто не обновлять страницу вообще.
Смотрите демо здесь: http://query.notesquare.me/home.html/
КОД
<form method="post">
<input type="text" id="input-create-playlist" placeholder="Playlist Name" name="create_playlist" />
<input type="submit" id="button-create-playlist" value="Create Playlist" />
</form>
<?php
session_start();
$create_playlist = $_POST['create_playlist'];
$playlists = array("One", "Two", "Three");
$_SESSION['main'] = $playlists;
array_push($playlists, $create_playlist);
for ($i = 0; $i < count($playlists); $i++) {
echo $playlists[$i] . "<br />";
}
?>
Пытаться
<form method="post">
<input type="text" id="input-create-playlist" placeholder="Playlist Name" name="create_playlist" />
<input type="submit" id="button-create-playlist" value="Create Playlist" />
</form>
<?php
session_start();
$create_playlist = $_POST['create_playlist'];
$_SESSION['user_playlists'][] = $create_playlist;
$playlists = array("One", "Two", "Three");
for ($i = 0; $i < count($_SESSION['user_playlists']); $i++) {
array_push($playlists, $_SESSION['user_playlists'][$i]);
}
$_SESSION['main'] = $playlists;
for ($i = 0; $i < count($playlists); $i++) {
echo $playlists[$i] . "<br />";
}
?>
Ваш подход устанавливал $_SESSION['main'] = $_POST['create_playlist']
до желаемого эффекта array_push
,
Других решений пока нет …