Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, beleza?
É o seguinte, tenho um resultado de uma busca do banco de dados, o resultado esta dentro de um formulário.
Cada linha deste resultado tem um checkbox, pra incluir tal linha em um favorito:
tipo assim:
João [ ] incluir aos favoritos
Maria [ ] incluir aos favoritos
Marta [ ] incluir aos favoritos
como não seu o tamanho total de linhas, criei um laço que nomeia cada checkbox em ordem crescente : 12345....
no value do checkbox coloco o ID de cada linha do resultado da busca mysql.
e coloquei uma função de submit onclick em cada checkbox para um iframe nomeado como alvo.
Agora aparece o problema.
como não sei ao certo qts checkbox serão enviados não consigo resgatar as variaveis pelo seus nomes.
dou um: var_dump($_POST);
vejo que as variaveis estão indo corretamente mas não sei como resgata-las.
Qual processo tenho que fazer?
mas o campo tem q ter nome diferentes pq o usuario pode checar varios check box.. com estão sendo submetidos para um iframe.
cada vez q ele checa um dispara uma funcao JS que submete o formulario para esse iframe.
Outro, eu tenho um botao selecionar todos e um desmarcar todos.
cada item tem q ter nomes diferentes pq cada um tem um valor, e podem ser submetidos e momentos diferentes ou juntamente.
Então cria um array. Tipo favoritos[1], favoritos[2]... Daí na hora de pegar você usa o foreach.
http://br.php.net/manual/pt_BR/control-structures.foreach.php
Carlos Eduardo
Me de uma luz de como usar uma array neste problema
Página dos checkbox
<form name="f1" action="favoritos.php" method="post" target="alvo">
<?
include("conecta.php");
$sql = mysql_query("SELECT * FROM `lista` WHERE plano LIKE 'ouro' ORDER BY rand()");
$total=mysql_num_rows($sql);
$check = 0;
while($l = mysql_fetch_array($sql) and $check <= $total) {
++$check;
$cod = $l["cod"];
$nome = $l["nome"];
$telefone = $l["telefone"];
$endereco = $l["endereco"];
$email = $l["email"];
$site = $l["site"];
$descricao = $l["descricao"];
$fotobox = $l["fotobox"];
$nivel = $l["nivel"];
echo "<table width='702' border='0' cellspacing='9' bgcolor='#FFFFFF'><tr>
<td><table width='684' border='0' cellpadding='0' cellspacing='9' bgcolor='#E7E8E9'><tr>
<td width='124' height='124' >
<img src='$fotobox' width='124px' height='124px'></td>
<td valign='top'><table width='100%' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td><span class='tema'>$nome
<b>$nivel</b></span></td>
<td align='right'> <span class='tema'>favorito $check <input type='checkbox' name='$check' value='$cod' onClick='javaScript:submit2();'</span></td> </tr>
</table>
<span class='dados'>$telefone<br>$endereco<br>$email<br>
<a href='[http://$site'](http://%24site) target='blank' class='site'>$site</a><br><br>
Descrição: $descricao</span></td>
</tr></table></td>
</tr>
</table>";
}
?>
</form>
para entender melhor como esta funcionando e o que nun to conseguindo fazer Clique aqui
Como resgato os valores submitidos pelo metodo post pra dentro de uma array
pq depois vou ter q inseri-los em um banco de dados
Pesquisei, tem bastante informação até, mas ñ sto conseguindo estruturar metalmente o que fazer, a idéia da array é a correta a usar pelo que vi, mas me ajudem, por favor!
Na Página q recebe os dados eu fiz isso:
Deu certo:
<?
foreach ($_POST as $indice => $valor)
{
echo "$valor";
}
?>
mas eu quero fazer isso e nun tá da dando certo:
<?
$ip = getenv("REMOTE_ADDR");
foreach ($_POST as $indice => $valor) include("conecta.php");
$sql = mysql_query("SELECT * FROM favoritos WHERE cod LIKE ('$valor') )");
$total=mysql_num_rows($sql);
}
if($total == 0){
include("conecta.php");
mysql_query ("INSERT INTO `favoritos` ( `id` , `cod` , `ip` ) VALUES ('', '$valor' , '$ip' )");
}
}
?>RESOLVIDO - era um probleminha de parentese e blablba.. valeu pela dica do foreach
Que bom que resolveu.
Carlos Eduardo
Troca o nome do campo para favorito.
Carlos Eduardo