2015-06-21 62 views
0

即時試圖存儲可變$days內複選框值,但是當我保存這個值,數據庫只是最後的選擇複選框存儲在數據庫中......請幫我理清代碼,所以我可以得到所有選擇值如何存儲所有複選框值數組在PHP

<?php 

    if (isset($_POST['days'])) { 
    foreach ($_POST['days'] as $day) { 
     $days = " " . $day; 
    } 
} else { 
    $days = "not available"; 
} 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> 
<tr> 
<td>Select Days :</td> 
<td> 
    <input type="checkbox" name="days[]" value="Sunday">Sunday 
    <input type="checkbox" name="days[]" value="Monday">Monday 
    <input type="checkbox" name="days[]" value="Tuesday">Tuesday 
    <input type="checkbox" name="days[]" value="Wednesday">Wednesday 
    <input type="checkbox" name="days[]" value="Thursday">Thursday 
    <input type="checkbox" name="days[]" value="Friday">Friday 
    <input type="checkbox" name="days[]" value="Saturday">Saturday 
    <input type="checkbox" name="days[]" value="All Days">All Days 
</td> 
<td></td> 

+0

使用'$天= 「」。 $天;(。)' –

+0

日Thnx的幫助:) .....一個點可以有所作爲lolzz – suhas

回答

2

您分配一個正常的字符串$days和覆蓋它在每次迭代。你可以追加它,使用.=操作。 ($days .= ' ' . $day),但也許是更容易使用implode

if (isset($_POST['days'])) { 
    $days = implode(' ', $_POST['days']); 
} else { 
    $days = "not available"; 
} 

注意有一個小的功能差異。 implode將添加空格其間的日子,而foreach循環也將在開始加一個空格。

0

您覆蓋$days與forech循環的每個迭代。相反,你想添加到它。這很可能是你在找什麼:

if (isset($_POST['days'])) { 
    foreach ($_POST['days'] as $day) { 
     $days .= " " . $day; 
    } 
} else { 
    $days = "not available"; 
} 

如果是這樣,那麼你甚至可以簡化代碼,並消除環路:

if (isset($_POST['days'])) { 
    $days = implode(" ", $_POST['days']); 
} else { 
    $days = "not available"; 
} 
-1

你需要讓$天爲數組,然後推你從複選框到數組中的值。

$days[] = $day 

您的foreach語句

0

使用.裏面concatate字符串

$days .= " " . $day; 
相關問題