2015-06-21 61 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; 
相关问题