2012-02-20 107 views
0

我正在一个网站上工作,其中根据有多少用户生成了行。在这个例子中,我有三个用户。基本上,我使用下拉选择数据通过$ _POST传递数据。这是我传递给PHP的。这些包裹在<form>中,但我已将其清除以显示重要数据。从foreach循环中打破

... 
<select name="taction[3]" > 
<option value="accept">Accept</option> 
<select name="taction[4]" > 
<option value="accept">Accept</option> 
<select name="taction[6]" > 
<option value="accept">Accept</option> 
... 

我的PHP是这样的:

$total = 1; 
foreach ($_POST['taction'] as $userid => $action) 
{ 
    if ($action == "accept") 
    { 
     if ($total<1) 
     { 
      break; 
     } 
     else 
     { 
      echo $userid."foo"; 
      $total = ($total - 1); 
     } 
    } 
} 

出于某些原因,它仍然显示三“富的”,当它应该先“富”之后已经停止。我究竟做错了什么?

+0

也许你执行整个代码块(包括领先的'$总= 1'三次? – KingCrunch 2012-02-20 20:04:19

+0

一件事我立刻在你的代码注意的是=>应> =为“大于或等于”,而不是,等于或大于” – JimmyBanks 2012-02-20 20:05:07

+0

吉米大于=>为foreach循环,而不是用于检查大于/小于 – BenOfTheNorth 2012-02-20 20:06:49

回答

0

感谢您的建议开始了$总变量。依靠foreach语句之外的变量,我错了。我不得不复制循环内部的操作,以便注册添加的数据。

0

将其更改为

if($total <= 1) 

或者为0

+0

然后他不会得到任何输出,因为即使在打印任何用户之前,foreach循环将在第一轮中断。 – Basti 2012-02-20 20:12:49