2016-11-08 18 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

関連する問題