2011-12-20 59 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的值 - 改爲雙引號