0

我正在尝试一个相当简单的测试,使用 HTML 复选框,用户可以在其中选择最多四个项目(我测试中的食物)。选定的项目被传递给一个 PHP 脚本,我在其中根据选定的项目检查它们以确定用户选择的内容。

基于此,我使用 if 语句来确定用户选择的内容,并将二进制值写入数组以供将来处理(这是下一个要处理的项目)。

我的问题是我无法让这些if陈述成为真实。正如您从代码中看到的那样,我过去常常trim去掉任何多余的字符,并在输入语句 集之前使用var_dumpprint命令查看我所拥有的内容。if

到目前为止,一切似乎都还可以,但这些if陈述永远不会是真的(我在每个陈述中都放了 echo 陈述来告诉我这一点)。当我选择所有四种食物时,下面是有问题的代码段和 PHP 脚本的输出。我肯定会很感激任何见解。

ps - 我也尝试strcmp过代替 IF 语句,但无济于事。

PHP:

for ($i=0; $i<count($userChecked ); $i++) {

 // var_dump to show what exactly was passed

 trim($userChecked[$i]);

 var_dump($userChecked[$i]);

 print "<pre>[".$userChecked[$i]."]</pre>";

// now go through each checked item to see where the match is
// echo that we have a match and set the corresponding array value to 1

 if ($userChecked[i]=="soup") {
   echo  "the user wants soup<br />";
   $pref_array[0] = '1';
 }

 if ($userChecked[i]=="salad") {
   echo  "the user wants salad<br />";
   $pref_array[1] = '1';
 }

if ($userChecked[i]=="cheese") {
   echo  "the user wants cheese<br />";
   $pref_array[2] = '1';
 }

if ($userChecked[i]=="sardines") {
   echo  "the user wants sardines<br />";
   $pref_array[3] = '1';
 }

 }

选中所有复选框(汤、沙拉、奶酪、沙丁鱼)时的输出:

字符串(4)“汤”[汤] 字符串(5)“沙拉”[沙拉] 字符串(6)“奶酪”[奶酪] 字符串(8)“沙丁鱼”[沙丁鱼]

4

1 回答 1

4

$userChecked[i]不会给你输出,因为 i 不是数组的索引或数组的键。所以你必须$userChecked[$i]改用

于 2013-07-01T05:12:04.973 回答