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


How capture the info into a HTML checkbox?

我创建了一个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>

这里是处理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.";
    }
 }

如有任何帮助,我们将不胜感激。到星期天为止,我已经尝试了六种编码方式,但我已经有一段时间没有用PHP编写了,只是无法理解。

这里有一个方法,您不需要担心为复选框指定不同的名称,只需检查是否选择了一定数量的复选框。

每个选择的选项的值将在通过foreach填充时自动得到回显。

旁注: 要选择您想要的最小数量,请将数字3更改为您想要的数字。

这使用PHP的count()函数来"计数"选择了多少个复选框,并将所有复选框的名称用作数组。

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

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

至:(如果恰好等于3

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

以便获得精确匹配,或者将其保留为:

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

以检查是否已经选择了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();
?>

您需要一个表单和一个按钮来发送信息,请尝试以下操作:

<form action='' method='POST'>
 <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>
<input type=submit value='Send' name = 'send'>
</form>
<?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 if (isset($_POST['send'])) {
     echo "You can do more to market your dealership.";
    }
 }
 adMix();
 ?>