如何将信息捕获到HTML复选框?

Mat*_*ock -1 html php forms

我创建了一个HTML表单,询问用户他们使用的营销类型.根据他们的答案,我打算根据这些变化构建一个PHP推荐系统.我已经开始使用基本函数,但它不断返回相同的echo语句,无论我是否选择了所有复选框.这是HTML代码.

 <p>Marketing Mix:</p>    
 <input type="checkbox" name="TV" value="TV">TV<br>
 <input type="checkbox" name="Radio" value="Radio">Radio<br>
 <input type="checkbox" name="Search" value="Search">Search<br>
 <input type="checkbox" name="Mobile" value="Mobile">Mobile<br>
 <input type="checkbox" name="Mail" value="Mail">Direct Mail<br>
 <br>
Run Code Online (Sandbox Code Playgroud)

这是处理HTML表单的PHP函数.

 function adMix () {
 $tv = (isset($_POST['TV']));
 $radio = (isset($_POST['Radio']));
 $search = (isset($_POST['Search']));
 $mobile = (isset($_POST['Mobile']));
 $mail = (isset($_POST['Mail']));
 if ($tv || $radio || $search || $mobile || $mail) {
     echo "You are running a comprehensive ad campaign.";
 } else {
     echo "You can do more to market your dealership.";
    }
 }
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.我已经尝试过将这六种方法编码到星期日,但是自从我用PHP编写并且无法解决这个问题已经有一段时间了.

Fun*_*ner 5

这是一种方法,您无需担心给复选框添加不同的名称,只需检查是否选择了一定数量的复选框.

每个选定选项的值将自动回显,因为它们通过a填充foreach.

旁注:要选择您希望拥有的数量,请将数字3更改为您想要的数字.

这使用PHP的count()函数来"计算"选择的数量,并将所有复选框的相同名称用作数组.

您可以更改:( 如果等于3或更多)

if(count($_POST['choices']) >= 3)
Run Code Online (Sandbox Code Playgroud)

to :( 如果它恰好等于3)

if(count($_POST['choices']) == 3)
Run Code Online (Sandbox Code Playgroud)

为了获得完全匹配,或将其保留为:

if(count($_POST['choices']) >= 3)
Run Code Online (Sandbox Code Playgroud)

检查是否选择了3个或更多.您可以根据需要更改该数字.

<form action="" method="post">
 <p>Marketing Mix:</p>    
 <input type="checkbox" name="choices[]" value="TV">TV<br>
 <input type="checkbox" name="choices[]" value="Radio">Radio<br>
 <input type="checkbox" name="choices[]" value="Search">Search<br>
 <input type="checkbox" name="choices[]" value="Mobile">Mobile<br>
 <input type="checkbox" name="choices[]" value="Mail">Direct Mail<br>
 <br>
 <input type="submit" name="submit" value="Submit">
</form>

<?php 

 function adMix () {

    if(isset($_POST['submit']) 
    && isset($_POST['choices']) ){

    echo "You entered ";

    foreach($_POST['choices'] as $choice){

        echo "<b>" . $choice . "</b> ";

}

if(count($_POST['choices']) >= 3){

     echo "You are running a comprehensive ad campaign.";
 } 

else{
     echo "<i>You can do more to market your dealership.</i>";
    }
 }

}

 adMix();

?>
Run Code Online (Sandbox Code Playgroud)