显示复选框数组值

时间:2015-02-09 17:10:23

标签: php arrays checkbox show

我正在尝试在我的checkbox数组中循环并显示每个元素的值,但它返回0,真正的值是电子邮件。 (lucas.ro****@gmail.com)和(thatian **** @ gmail.com)

这些是我的代码:

            <form method="POST" action="testeEmail.php">
            <table id="tableEmail" class="table table-striped table-bordered">
                <tr>
                  <td>Email</td>
                  <td width="5%">Enviar?</td>
                  <td class="centro">Já recebido</td>
                  <td width="10%"> <button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-send"></span> Enviar (Os útimos não enviados)</button></td>
                </tr>
                <?
                include("conexao.php");
                mysql_query("SET NAMES 'utf8'");
                mysql_query("SET character_set_connection=utf8");
                mysql_query("SET character_set_client=utf8");
                mysql_query("SET character_set_results=utf8");
                $resultEmail = mysql_query("SELECT id,email,recebido FROM Newsletter");
                if (mysql_num_rows($resultEmail) > 0) {
                    while ($rowEmail = mysql_fetch_assoc($resultEmail)){?>
                       <tr>
                            <td><? echo $rowEmail['email'] ?></td>
                            <td class="centro">
                                <input type="checkbox" name="box[]" value="<? echo $rowEmail['email'] ?>" <? if($rowEmail['recebido'] == 1){}else{ echo "checked"; } ?>>
                            </td>
                            <td class="centro"><? if($rowEmail['recebido'] == 1){ echo "<font color='green'>Sim</font>";}else{ echo "<font color='#d9534f'>Não</font>"; } ?></td>
                            <td>
                                <a href="deletarEmail.php?idEmail=<? echo $rowEmail['id'] ?>" class="btn btn-danger"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> DELETAR</a>
                            </td>
                       </tr>
                    <?}
                }
                 mysql_free_result($resultEmail);
                 mysql_close($conecta);?>
            </table>
        </form>

<?php
$Message = "testando";

include("class.phpmailer.php");
include('PHPMailerAutoload.php');
include('class.smtp.php');  


foreach($_POST['box'] as $box){
    if(isset($box)){
        //$dest = $box;
        echo $box;

    } else{
    }
}

&GT;

希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

起初:安全警告! http://php.net/manual/en/function.mysql-connect.php。 php.net网站上有一个红色框,告诉他......

不推荐使用mysql_函数。例如使用PDO库:http://php.net/manual/en/pdo.construct.php

这是必须的。


要检查帖子是否正常,只需使用:print_r($_POST)。它应显示每个发布的值。但是,您的代码中存在逻辑问题。看看这里:

foreach($_POST['box'] as $box){
    if(isset($box)){
        //$dest = $box;
        echo $box;
    } else{
    }
}

如果($_POST['box'] = array()),我指的是数组,则永远不会到达foreach(因为没有每个)。 因此不需要在foreach循环中检查isset 。你应该这样做:

if(isset($_POST['box']) && is_array($_POST['box'])) {
    foreach($_POST['box'] as $box){
        var_dump($box); // Always use var_dump for testing echo...
    } 
else {
    // box'es were not posted
}

我希望这很清楚,并且对你有所帮助。


还记得复选框有点具体。看看这里:Get $_POST from multiple checkboxes

第一个答案应该对你有用。

相关问题