2014-01-08 104 views
1

我發送數據到PHP文件並使用$_SESSION存儲它。我想在不同的時間將多個數據實例發佈到會話中,並在前端查看這些實例。目前,我可以在我的會話中存儲一個項目,並將其顯示在前端,但是我正在努力添加更多artisttitle的實例,因爲每當我通過數據跨越時,它就會被覆蓋。

如何在會話變量中存儲和顯示$_POST數據數組?我試過在$_SESSION['artist']$_SESSION['title']之後再添加一組[],但這不起作用。

<?php 
     session_start(); 
     if(isset($_POST['artist'])) 
    { 
     $_SESSION['artist'] = $_POST['artist']; 
    } 
    if(isset($_POST['title'])) 
    { 
    $_SESSION['title'] = $_POST['title']; 
    }  

    print_r($_SESSION['artist']); 
    echo "<br>"; 
    print_r($_SESSION['title']); 
?> 
+2

'$ _SESSION ['title'] [] = $ _POST ['title'];'應該有效。 – putvande

+1

以何種方式添加'[]'「不起作用」?它應該工作! –

+0

奇怪的是,什麼也沒有發佈。我的PHP會話頁面只是顯示在添加'[]'之前顯示的數據' – Byate

回答

2

你需要使用一個數組來保存這些值,所以$array[] = $value將追加$value$array

例子:

if(isset($_POST['title'])) { 
    // Append POST data to SESSION 
    $_SESSION['titles'][] = $_POST['title']; 
} 

print_r($_SESSION['titles']); 

你並不需要確保$array實際上是一個數組,因爲[]將使變量數組如果需要的話:Note: array_push() will raise a warning if the first argument is not an array. This differs from the $var[] behaviour where a new array is created.

0
<?php 
     session_start(); 
     if(isset($_POST['artist'])) 
    { 
     $_SESSION['artist'][] = $_POST['artist']; 
    } 
    if(isset($_POST['title'])) 
    { 
    $_SESSION['title'][] = $_POST['title']; 
    }  

    print_r($_SESSION['artist']); 
    echo "<br>"; 
    print_r($_SESSION['title']); 
?> 

用戶陣列存儲它。