2011-12-20 68 views
3

我有一系列的复选框谁值我正在和生成一个字符串像....如果复选框被选中我加'1'字符串,如果它没有被选择我加'0'串起来。问题与循环的复选框

<input type="checkbox" name="auth_0" id="auth_0" class="checkboxes" value="Yes"/> 

我的PHP脚本是...

if (isset($_REQUEST["save"])) { 
/*  echo $_REQUEST['auth_0'];*/ 
    for ($i = 0; $i <= 49; $i++) { 
     if ($_REQUEST['auth_[$i]'] == 'Yes') { 
      $auth_string .= '1'; 
     } else { 
      $auth_string .= '0'; 
     } 
    } 
    echo $auth_string; 
} 

虽然串产生,但其价值是在两种情况下始终为0,如果复选框被选中与否。

回答

4
if ($_REQUEST['auth_[$i]'] == 'Yes') { 
    //   ^---------^--- should be " instead 

使用'告诉PHP不要在字符串内解析/内插变量值。改为使用"

2

您需要使用双引号才能使字符串插值起作用。此外,您不使用括号来进行数组下标。

你可能想(通过你的HTML例子来看)......

$_REQUEST["auth_$i"] 
2
if ($_REQUEST['auth_'.[$i]] == 'Yes') { 

这会为你工作太..上述答案也会起作用。

1

在HTML中,您有id="auth_0",在PHP中您检查auth_[$i] - 请参阅方括号。此外,你有撇号在$_REQUEST['auth_[$i]']这不插入$i的值 - 改为双引号