0

ユーザーが最大 4 つの項目 (私のテストでは食品) を選択できる HTML チェックボックスを使用して、かなり単純なテストを試みています。選択されたアイテムは PHP スクリプトに渡され、そこで選択されたアイテムと照合して、ユーザーが何を選択したかを判断します。

それに基づいて、if ステートメントを使用してユーザーが何を選択したかを判断し、今後の処理のためにバイナリ値を配列に書き込みます (これは次に取り組むプロジェクトです)。

私の問題は、ifステートメントが真実になることができないことです。コードからわかるように、私はtrim余分な文字をすべて取り除き、一連のステートメント を入力する前にコマンドvar_dumpとコマンドを使用して内容を確認していました。printif

その時点まではすべて問題ないように見えますが、ifステートメントは決して真実ではありません (それぞれの中に echo ステートメントを入れて、それを伝えています)。以下は、問題のコードの一部と、4 つの食品をすべて選択したときの PHP スクリプトの出力です。洞察をいただければ幸いです。

ps - strcmpIF ステートメントの代わりに試してみましたが、役に立ちませんでした。

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';
 }

 }

すべてのチェックボックスが選択されている場合の出力 (スープ、サラダ、チーズ、イワシ):

string(4) "スープ" [スープ] string(5) "サラダ" [サラダ] string(6) "チーズ" [チーズ] string(8) "いわし" [いわし]

4

1 に答える 1

4

$userChecked[i]i は配列のインデックスまたは配列のキーではないため、出力は得られません。したがって、$userChecked[$i]代わりに使用する必要があります

于 2013-07-01T05:12:04.973 に答える