PHP从复选框中分解功能

时间:2015-08-01 07:51:43

标签: php html5 css3

我有一个表单,我将一些值(从复选框)提交到另一个页面,在该页面上,我使用一个爆炸函数来破坏数组中的字符串。但是当我把count()函数放在爆炸时,我得到一个额外的(+1)值。

  

HTML

<form name = "view" method = "POST" action ="cart.php">
<table align = 'center' width = '100%' border = '4'>
<tr>
<td colspan = '20' align = 'center'><h2> Viewing all the Products </h2></td>
</tr>

<tr align = 'center'>
<th>Item ID</th>
<th>Name</th>
<th>Price</th>
<th>Select</th>
</tr>

<tr align = 'center' class = "odd">
<?php

    while($row = mysql_fetch_array($run))
    {
        $i_id = $row['item_id'];
        $i_name = $row['item_name'];
        $i_price = $row['item_price'];
        ?>
<td><?php echo $i_id; ?></td>
<td><?php echo $i_name; ?></td>
<td><?php echo $i_price; ?></td>
<?php

$item = $i_name ." ". $i_price;  

?>                                                      
<td><input type="checkbox" name="addcart[]" value="<?php echo $item; ?>" onClick="return KeepCount()" />Tick</td> 
</tr>
<?php  }?><input type = "hidden" name = "check">
<button type=  "submit" onclick = "location.href = 'cart.php';" id = "cart">Add to Cart</button> <?php }  ?>  
</table>

</form>
  

PHP(第2页)

 $prd = implode(",",$_POST['addcart']);
 $final = explode(",", $prd);
 for($i=0; $i<=count($final); $i++)
 {
 echo count($final);   //this is where I'm getting the +1 to original count and hence everything falls apart.
 echo $final[$i];
 }
  

注意:我已经包含了所有必需的文件,如config.php和PHP文件中的所有内容。

2 个答案:

答案 0 :(得分:1)

为什么那么多额外的代码,直接如下所示: -

 foreach($_POST['addcart'] as $val){
   echo $val;
}

答案 1 :(得分:0)

因为count()从1开始计数,而循环从0开始。

替换此行:

for($i=0; $i<=count($final); $i++)

for($i=0; $i<=count($final)-1; $i++)