2016-11-08 97 views
1

當我在提交時選中「clearYes」單選按鈕時,我正在努力清除數組。它會顯示清除,但只要列出數組的內容,一切都會再次出現。php數組不會清除

下面是代碼

<?php 
session_start(); 

// Initialize an array for answers 
if (!isset($_SESSION['songArr'])) 
    $_SESSION['songArr'] = array(); 
?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 

<head> 
    <meta charset="utf-8"> 
</head> 

<body> 

    <form name="songform" action="" onsubmit=" return validateForm()" method="post"> 
     <table> 
      <tr> 
       <th>Song Name:</th> 
       <th><input type="text" name="songName" size="20"></th> 
      </tr> 
      <tr> 
       <th>Composer:</th> 
       <th><input type="text" name="composer" size="20"></th> 
      </tr> 
      <tr> 
       <th>Artist or Group:</th> 
       <th><input type="text" name="artist" size="20"></th> 
      </tr> 
      <tr> 
       <p><input name="radio1" type="radio" value="listSongs"> Show the list of songs? </p> 
      </tr> 
     </table> 
     <p><input name="submit" type="submit" value="Submit Song" /> <input type="reset" value="Clear form" /></p> 
     <p><input name="radio2" type="radio" value="clearNo" checked="checked"> Don't clear list. <input name="radio2" type="radio" value="clearYes">Clear list after submit.</p> 
    </form> 

</body> 

<?php 
if (!empty($_POST['submit'])) { 
// Push the posted data into the session array 
$_SESSION['songArr'][] = $_POST; 
} 
$listSongs= $_POST['radio1']; 
// Display the data now 
//if clearYes is selected 
if ($listSongs == "listSongs") { 
foreach($_SESSION['songArr'] as $array) { 
    echo "<strong>Song name</strong>: {$array['songName']}<br>"; 
    echo "<strong>Composer</strong>: {$array['composer']}<br>"; 
    echo "<strong>Artists</strong>: {$array['artist']}<br><br>"; 
} 
} 
//if clearYes is selected 
$resetArr= $_POST['radio1']; 
if ($resetArr == "clearYes") { 
unset($array); 
$array = array(); 
session_start(); 
session_unset(); 
session_destroy(); 
session_write_close(); 
setcookie(session_name(),'',0,'/'); 
session_regenerate_id(true); 
} 
?> 

</html> 
+1

試試'unset($ _ SESSION ['songArr']);' –

回答

1

您需要取消源陣列:

替換:

unset($array); 

有了:

unset($_SESSION['songArr']); 

希望它能幫助。

+0

那就是謝謝! – yaksushi