1

私はPHPでこのコードに取り組んでおり、基本的に5つの個別の項目に対して5つのチェックボックスがあり、それぞれ「ItemCheck」と呼ばれ、値は0〜4です。ここで、5 つのチェック リストからチェックされた番号を表示するコードを記述しました。

形:

for ($i=0;$i<count(5);$i++){
echo "
<input type='checkbox' name='ItemCheck' value='$i.check'>$i</input><br>"}

PHP プロセス:

if (isset($_POST['ItemCheck'])){

    for ($o=0;$o<$ItemCount;$o++){

        if($_POST['ItemCheck'] == $o.'.check') {
            echo "Item " . $o . "<br>";

            }
    }
} 
else{ echo "You must select at least one product";}

ボックス #1、2、および 3 をチェックすると、最終的な出力には「項目 3」のみが表示されます。選択したチェックボックスの数に関係なく、値が最も高いものだけが表示され、他は表示されません。コードの何が問題なのか、また、最も高い値だけでなく、選択された個々の数値を表示する方法を知っている人はいますか?

4

1 に答える 1

1

やりたいことは、配列ItemCheck[]を作成するチェックボックス要素の名前を設定することです。$_POST["ItemCheck"]

例:

for ($i=0;$i<count(5);$i++){
    echo "<input type='checkbox' name='ItemCheck[]' value='$i.check'/> $i<br>";
}

注意すべきもう1つのことは、ブラウザはチェックされていないチェックボックスに対して何も投稿しないため、プロセッサはこのようにする必要があると思います.

<?php
if (isset($_POST['ItemCheck'])){
    for ($o=0;$o<count($_POST['ItemCheck']);$o++){
            echo "Item " . $_POST['ItemCheck'] . "<br>";
    }
} else {
    echo "You must select at least one product";
}
?>

もう1つ確認しておくことは、フォームのメソッドがに設定されていることですPOST

于 2013-05-29T21:46:41.140 に答える