Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

19-01-2008 10:54

segue um pedaço do meu script
if($_POST['verificar'] == "sim"){ $classe = $_POST['classe']; $tipo = $_POST['tipo']; $sql = "SELECT * FROM $tabela WHERE classe='$classe' AND tipo='$tipo'"; $exec = mysql_query($sql); $total = mysql_num_rows($exec); if($total < 1){ echo "Nenhum filme encontrado"; } else { while($dados = mysql_fetch_array($exec)){ $id = $dados['id']; $nome = $dados['nome']; $destaquev = $dados['destaque']; echo "Código: $id | Filme: $nome | <a href=?alterar=sim&id=$id>Alterar</a> | <a href=?deletar=sim&id=$id>Deletar</a> | "; if($destaquev == "nao" OR $destaquev == "") { echo "<a href=?destaque=sim&id=$id>Definir como destaque</a><br>"; } else { echo "<a href=?destaque=nao&id=$id>Tirar de destaque</a><br>"; } } } }

quero que na frente de cada linha ele apareça um checkbox, porque assim posso definir + filmes em destaque de uma só vez, fiz com link dai tenho que clicar filme por filme para definir como destaque, e acaba se tornando cansativo, dai pensei +/- dessa forma, + não deu certo
if($_POST['verificar'] == "sim"){ $classe = $_POST['classe']; $tipo = $_POST['tipo']; $sql = "SELECT * FROM $tabela WHERE classe='$classe' AND tipo='$tipo'"; $exec = mysql_query($sql); $total = mysql_num_rows($exec); if($total < 1){ echo "Nenhum filme encontrado"; } else { echo "<form name='definir destaque' method='post' action=''> <input type='hidden' name='destaqueup' value='sim'>"; while($dados = mysql_fetch_array($exec)){ $id = $dados['id']; $nome = $dados['nome']; $destaquev = $dados['destaque']; echo " <input type='hidden' name='idestaque[]' value='$id'> <input type='checkbox' name='destaquee[]' value='sim'>Código: $id | Filme: $nome | <a href=?alterar=sim&id=$id>Alterar</a> | <a href=?deletar=sim&id=$id>Deletar</a> | "; } echo "<input type='submit' value='Alteração destaque'> </form>"; } } if($_POST['destaqueup'] == "sim"){ $destaquee = $_POST['destaque']; $idestaque = $_POST['idestaque']; $qntsdstq = count($destaquee); for($i=0; $i <= $qntsdstq; $i++){ $alterar = "UPDATE $tabela SET destaque='$destaquee[$i]' WHERE id='$idestaque[$i]''; mysql_query($alterar) or die("Houve o seguinte erro durante a alteração: ".mysql_error()); echo "<script> window.alert('Filmes de destaque alterados com sucesso'); location.href('".$_SERVER['PHP_SELF']."'); </script>"; } }

Bom espero ajuda pessoal, obrigado! :D
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

19-01-2008 18:31

Trabalha nessa base

Usa os names do checkbox como array

<form actin="" method="POST"> 1 <input type="checkbox" name="opcao[]" value="1"> <br> 2 <input type="checkbox" name="opcao[]" value="2"> <br> 3 <input type="checkbox" name="opcao[]" value="3"> <br> <input type="submit" name="envio"> </form> <?php if($_POST) { foreach($_POST['opcao'] as $novas) { // retorna os valores selecionados $novas; } } ?>

Na parte em PHP onde aparece o $novas, que vai ser o valor do checkbox, que pode ser o id de algum item por exemplo, você faz o update com base nele.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

19-01-2008 18:43

hummm

vou testar valeu :)
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

19-01-2008 18:53

eu não cheguei a testar ainda
+ posso fazer da seguinte maneira?
... { ... echo "<form name='destaque_definir' method='post' action=''> <input type='hidden' name='define' value='destaque'>"; while($dados = mysq_fetch....($exec)){ $id = $dados['id']; $nome = $dados['nome]; echo "<input type='hidden' name='id[]' value='$id'> <input type='checkbox' name='destaque[]' value='sim'> | $nome<br>"; } echo "<input type='submit' value='Definir destaques'> </form>"; } if($_POST['define'] == "destaque"){ foreach($_POST['id'] as $idnew){ foreach($_POST['destaque'] as $destaquenew){ if($destaquenew == "") { $destaqueneww = "nao"; } else { $destaqueneww = $destaquenew; } $update = "UPDATE $tabela SET destaque='$destaqueneww' WHERE id='$idnew'"; mysql_query($update) or die("Erro durante a definição de destaque"); echo "<script> location.href('".$_SERVER['PHP_SELF']."'); </script>"; } } }

pode ser isso amigo WEB ?
Obrigado
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

19-01-2008 20:37

Não entendi a lógica que usou, você quer pegar todos os valores separando os selecionados dos não selecionados, e com base nisso fazer o update, ou só fazer o update nos campos selecionados?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

20-01-2008 08:26

é sómente pegar os quais foram selecionados amigo :)
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

20-01-2008 08:41

Opa, esqueci de falar, tipo eu vou fazer verificar o banco, dai ele vai verificar se ja está definido como destaque se já estiver, o chekbox ja vai estar selecionado, dai se eu quiser remove de destaque, é só tirar a seleção, só que o foreach só pega os checkbox com valores? então como irei fazer??

Obrigado!
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

20-01-2008 11:02

Fiz um exemplo com a seguinte base

CAMPOS DO BD
tipo e nome

tipo 0 = não destaque
tipo 1 = destaque

Para fazer o update usei a seguinte lógica
Atualizo todos os tipos para 0, depois, rodo um foreach pegando só valores selecionados, com os valores selecionados, faço uma comparação ( if ) dos valores do select com os do foreach, se forem iguais ( selecionados ) faz o update do tipo para 1, daí, dá o refresh no documento com os valores atualizados.

CÓDIGO

<?php $conexao = mysql_connect("localhost", "login", "senha") or die(mysql_error()); $db = mysql_select_db("bancodedados"); $selec = "SELECT tipo, nome FROM minhatabela"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); ?> <form actin="" method="POST"> <?php while($dados=mysql_fetch_array($exec)) { $dados['tipo']=="1" ? $checado="checked" : $checado=""; ?> <input type="checkbox" name="opcao[]" value="<?=$dados['nome'];?>" <?=$checado;?>> <?=$dados['nome'];?> <br> <?php } ?> <input type="submit" name="envio"> </form> <?php if($_POST) { $selec_n = "SELECT tipo, nome FROM minhatabela"; $exec_n = mysql_query($selec_n, $conexao) or die(mysql_error()); while($dados_n=mysql_fetch_array($exec_n)) { extract($dados_n); $atualiza="UPDATE minhatabela SET tipo='0' WHERE nome='$nome'"; mysql_query($atualiza) or die(mysql_error()); foreach($_POST['opcao'] as $valores) { if($nome==$valores) { $atualiza="UPDATE minhatabela SET tipo='1' WHERE nome='$nome'"; mysql_query($atualiza) or die(mysql_error()); } } } echo "<script type='text/javascript'>location.href='?'</script>"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

20-01-2008 20:54

hum, + se eu deixar sem selecionar todos, vai acusar um erro na linha do foreach, vou tentar usar o radio pra ve oq da, e dai digo o resultado, valeu!
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

20-01-2008 21:08

Você pode contonar esse erro de diversas formas:
@foreach

validação para não permitir o submit se nenhum checkbox estiver marcado

etc...
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

20-01-2008 23:34

colokei o @foreach, só que ja na hora de carregar o documento apresenta o erro na linha onde ta o @foreach, se eu retirar o @, ele abre o documento normal, só que se eu deixar os checks sem selecionar, ele vai dar o erro dps, Valeu até +
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

21-01-2008 07:48

Coloca na linha antes do foreach

if($_POST['opcao']!=null) {

ai, depois que fechar o if dentro do foreach e o foreach, fecha também esse novo if

}
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

21-01-2008 11:32

ta complicado
como eu to pegando o id por hidden, o foreach acaba pegando todos os valores do id e preenchedo todos como destaque

então pensei no seguinte, usar javascript, + não consegui, mais ou menos assim
<script type="text/javascript"> function checado(){ if(document.verificar_destaque.check_destaque.checked == true){ document.verificar_destaque.id.checked = true; } else { document.verificar_destaque.id.checked = false; } } function checadoo(){ if(document.verificar_destaque.id.checked == true){ document.verificar_destaque.check_destaque.checked = true; } else { document.verificar_destaque.check_destaque.checked = false; } } </script> <? echo "<form name='verificar_destaque' method='post' action=''> <input type='hidden' name='destaque' value='add'>"; while($dados = mysql_fetch_array($exec)){ $id = $dados['id']; $nome = $dados['nome']; $destaquev = $dados['destaque']; echo "<input type='checkbox' name='id[]' value='$id' onClick=\"checadoo();\"><input type='checkbox' name='check_destaque[]' value='sim' onClick=\"checado();\">"; echo " Código: $id | Filme: $nome | <a href=?alterar=sim&id=$id>Alterar</a> | <a href=?deletar=sim&id=$id>Deletar</a> | "; if($destaquev == "nao" OR $destaquev == "") { echo "<a href=?destaque=sim&id=$id>Definir como destaque</a><br>"; } else { echo "<a href=?destaque=nao&id=$id>Tirar de destaque</a><br>"; } } echo "<input type='submit' value='Definir destaques'> </form>"; } }

valeu :)
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

21-01-2008 12:57

Não entendi, o certo não é passar o id pelo value do checkbox?

Esse script que você montou é para que?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

21-01-2008 14:06

hummm é mesmo, eu nao passei o id pelo value do checkbox, vou faze isso!
Esse script que tentei fazer é pra quando selecionasse o checkbox, seleciona automatico o check do id, mais nao deu certo, nao sei porque :(

Valeu, vou testar
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

21-01-2008 14:18

AE, finalmente consegui, deu certo amigo como você falou, passei o id no value do checkbox :) valeu mesmo :)

abraço até +
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

problemas com for() e com checkbox

21-01-2008 14:30

flw
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 348
Sexo: Masculino
Localização: Paraná/São Mateus do Sul/Brasil
Contato:

problemas com for() e com checkbox

28-02-2008 09:17

problema resolvido :D
0
Está precisando de um Website?
Acesse ww.listasms.com/web e faça um orçamento sem compromisso!
Ígor

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado