显示复选框数组值
Show checkbox array values
我试图在我的复选框数组中循环并显示每个元素的值,但它返回 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{
}
}
?>
希望有人能提供帮助。
起初:安全警告! http://php.net/manual/en/function.mysql-connect.php。 php.net 站点上有一个红框,告诉...
mysql_ 函数已弃用。 例如使用 PDO 库:http://php.net/manual/en/pdo.construct.php。
这是必须的。
要检查 post 是否正常,只需使用:print_r($_POST)
。它应该显示每个 posted 值。但是,您的代码中存在逻辑问题。看这里:
foreach($_POST['box'] as $box){
if(isset($box)){
//$dest = $box;
echo $box;
} else{
}
}
如果($_POST['box'] = array())
,我的意思是空数组,永远不会到达foreach(因为没有each) . 因此不需要检查 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
第一个回答应该对你很有用。
我试图在我的复选框数组中循环并显示每个元素的值,但它返回 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{
}
}
?>
希望有人能提供帮助。
起初:安全警告! http://php.net/manual/en/function.mysql-connect.php。 php.net 站点上有一个红框,告诉...
mysql_ 函数已弃用。 例如使用 PDO 库:http://php.net/manual/en/pdo.construct.php。
这是必须的。
要检查 post 是否正常,只需使用:print_r($_POST)
。它应该显示每个 posted 值。但是,您的代码中存在逻辑问题。看这里:
foreach($_POST['box'] as $box){
if(isset($box)){
//$dest = $box;
echo $box;
} else{
}
}
如果($_POST['box'] = array())
,我的意思是空数组,永远不会到达foreach(因为没有each) . 因此不需要检查 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
第一个回答应该对你很有用。