Ir para conteúdo
Fórum Script Brasil
  • 0

Problemão... Pelo Menos Pra Mim!


gabi_poa

Pergunta

Gente, é o seguinte:

faço uma consulta numa tabela e jogo os resultados de um dos campos numa tabela html, ao lado de checkboxes.

Aí, a pessoa deve selecionar as que ela quer e clicar num botão: selecionar.

Quando fui fazer me apertei........ Olha só o meu código:

//loop no campo e exibe em html, isto funciona ok
while($linha = mysql_fetch_array($select)){
   $id = $linha["id"];
   $what= $linha["tópico"];
   echo "<tr><td><input name=\"assunto\" type=\"checkbox\" value=\"?assunto=$what\"></td><td>$what</td></tr>\n";
  }

//verifica o que foi selecionado, isto n funciona
switch ($acao){
case "agrupar":
if ($assunto != ""){ //vê se pelo menos um chcbx foi clicado
$valores="";
$meusTopicos = mysql_query("SELECT tópico FROM $nome ORDER BY tópico");
while($linha = mysql_fetch_array($meusTopicos)){
$assunto=substr($assunto, 9); // para tirar a parte ?assunto=
$what=$linha["tópico"];
if (strcasecmp ($what,$assunto)==0){ //igualdade de strings, foi selecionada
$valores=valores.$what; //eu tava pensando em junatr todos os valores selecionados numa string
} 
}
}
}

Não deu certo. Se eu der um echo na variável $valores, no fim do case, mostra nada.

Vlw

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

É que você tá usando o mesmo "name" para todos os checkboxes... entende? você tem que usar um atributo "name" diferente pra cada um... aí, no value você pode colocar apenas um "1". Aí você verifica se o campo vale 1... se sim, é porque foi selecionado.

Ok?

Link para o comentário
Compartilhar em outros sites

  • 0

não, usa o post. Mas eu n sei a diferença enyre um e outro, apesar de finalmente ter tomado vergonha na cara e tirado a "bíblia" da biblioteca............

quanto à sua sugestão: marcar os values com 1

eu vou pegar os valores de "value" e concatenar numa string com um separador e depois guardá-la numa tabela. tipo 1/2/3 etc aí eu preciso de values diferentes.

vou tentar alguma coisa com arrays.

olha, é provável que eunão tenha entendido a tua sugestão. se eu conseguir eu aviso.

vlw a mão

Link para o comentário
Compartilhar em outros sites

  • 0

Eu faria de modo diferente, mas aqueles seus values estão muito estranhos... blink.gif

Bom, rápida explicação sobre GET e POST:

· GET: envia os dados pela URL, na forma de query string. Quando você vê aquele "http://www.site.com/pagina.php?var1=valor1&var2=valor&var3=valor3", tudo que vier depois do "?" são parte da query string, são variáveis e valores que estão sendo passados ao PHP ou à página dinâmica que vai receber essa informação. Esse método é menos seguro, pois o usuário vê a informação e também sofre várias limitações por que passa a informação junto da URL. É retornada usando-se $_GET['nomedavar'], pelo PHP.

· POST: os dados são passados internamente e os usuários não os vêem. O limite existe, mas é consideravelmente maior que o da GET, permitindo, inclusive, envio de arquivos pesados. É retornada usando-se $_POST['nomedavar'], pelo PHP.

Agora, quanto aos names, pode-se fazer como o Illidan disse ou pode-se fazer da seguinte maneira:

Colocando-se "name=foo[]'", quando esses campos forem passados para o PHP, eles vão retornar dentro da array $_POST['foo], ou seja, $_POST['foo'][0] vai ser o 1º campo marcado, $_POST['foo'][1] vai ser o 2º campo marcado, $_POST['foo'][2] vai ser o 3º campo marcado. Isso mesmo que alguns campos estejam desmarcados, a array vai trazer somente os que forem marcados. smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

solução do illidan:

eu coloquei uma variável $inc que incrementa dentro do primeiro while, aí ela vira o name, assim:

<input name=\"$inc\" type=\"checkbox\" value=\"1\">[CODE]
depois, eu fiz o seguinte (não morram de rir)
[CODE]for ($i=0; $i<=$inc; $i++){
if ($i==1){
while($linha = mysql_fetch_array($i)){
$what=$linha["tópico"];
$valores=valores.$what;
}
}
}

vou tentar a do error, não sabia disso.

vlw

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...