0

我有一些理解困难。我在 html 中有一些复选框,如下所示:

<input type="checkbox" name="a[]" value="1">
<input type="checkbox" name="a[]" value="2">
<input type="checkbox" name="a[]" value="3">

我喜欢评估 a[] 的多个选择以查看选择了什么,这就是我必须使用数组的原因。

好的,现在的问题是:提交后我已经发布了该数组。

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

    $a = $_POST['a'];
}

此外,我喜欢为每个选定的值设置一些消息到另一个数组中:

if ($a === '1'){
   $msg[] = "text1";
}
if ($a === '2'){
   $msg[] = "text2";
} and so on...

现在我已将这些消息存储到数组中$msg[]

下一步,这是我真正的问题:

我喜欢在将要发送的邮件中显示整个选择。所以到目前为止我有:

$to = "a@b.cd";
$subject = "some text";
$message = "some text... 

show what was selected:

$msg

end text";...

所以通常我知道我必须像使用 foreach 一样:

<?php if(isset($msg)):?>
    <?php foreach($msg as $m):?> 
        <p>
        <?php echo $m;?>
        </p>
    <?php endforeach;?>
<?php endif;?>

使其可见。我的问题是将这个从邮件到引号中的消息中实现。

所以如果有人可以帮助我,我真的很感激。

多谢。

4

2 回答 2

1

只需使用字符串连接,在 PHP 中使用. (点)运算符。

$message = "some text... \n\nshow what was selected:\n\n";

foreach ($a as $b)
{
    $message .= $b . "\n";
}

$message .= "end text";

此外,您应该查看变量命名($a 并不是真正的描述性),并且 $a 是一个数组,所以您不能这样做if ($a === '1'),您应该使用in_array().

于 2012-04-20T13:27:25.143 回答
0

你应该做

$msg = array();
foreach($a as $checked){
    $msg[$a] = "text$a";
}

进而

<?php if(isset($msg)):?>
    <?php foreach($msg as $k => $m):?> 
        <p>
        <?php echo "$k : $m";>
        </p>
    <?php endforeach;?>
<?php endif;?>
于 2012-04-20T13:28:00.603 回答