2015-02-09 69 views
1

我想循环内我的复选框数组并显示每个元素的值,但其返回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{ 
    } 
} 

>

希望有人能帮助。

+0

如果它返回'null',则可能需要检查查询返回的内容。对我来说这似乎是一个问题''? echo $ rowEmail ['email']?>' – 2015-02-09 17:13:52

+1

使用'print_r($ _ POST)'来查看是否有任何东西到达您的脚本。 – 2015-02-09 17:15:00

回答

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

首先回答应该是真的对你有用。