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

problema com o campo radio


cabron

Pergunta

Tenho um while para imprimir todos os dados de minha consulta,ele busca os campos e mprime tudo certinho.

O problema acontece quando eu escolho o valor que eu desejo e envio para outra pagina.Ao invés dele pegar o campo selecionado e pega a ultima linha da consulta

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="exclui.php" method="get">
<?php
include "config.php";
$exclui=$_GET['cidade'];
$paciente=$_GET['nome'];
$sql=mysql_query("select * from clientes WHERE CLI_CIDADE='$exclui' AND CLI_NOME LIKE'%$paciente%' order by CLI_NOME");
while($linha=mysql_fetch_assoc($sql)){
?>
<input type="radio" name="cod_cliente" value="<?php echo $linha['CLI_COD'] ?>"/>
   <input type="text" value="<?php echo $linha['CLI_NOME'];?>" name="cliente" size="50"/>
<br />
<?php
}
?>
<input type=submit value=Deletar />
</body>
</html>
e esse é o que recebe
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>excluir</title>
</head>
<body>
<?php
include "config.php";
$r=$_GET['cliente'];
mysql_query("delete from clientes where CLI_NOME='$r'") or die("erro ao deletar");
header("Location:deletar_paciente.php");
?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

o problema é que inputs do tipo text precisam ter um name único para poder se diferenciar dos outros....

Já os inputs do tipo radio precisam ter o mesmo name para que quando o usuario selecionar um radio desses o valor enviado seja o value do marcado com o name dele como indice associativo da var $_POST ou $_GET... e como campo que você está pegando para deletar o registro é exatamente o campo do tipo text ele vai pegar somente o ultimo mesmo porque ele não vai diferenciar qual é qual....

Não sei porque você colocou o valor de cliente_cod no value dos radio's se você não ta usando eles no arquivo que recebe os dados para pagar...

Diante disso tem 2 soluções para seu problema de acordo com que pude perceber em seu sistema.

1 - ou vc troca o conteudo do while pois aparentemente você não está precisando do cod do cliente somente do nome para poder delatar o registro.

<label><input type="radio" name="cliente" value="<?php echo $linha['CLI_NOME'];?>"/><?php echo $linha['CLI_NOME'];?></label><br />
2 - ou você muda a var que recebe os dados e a query que deleta o registro do arquivo que recebe os dados para apagar pelo valor do input radio marcado ao invés do campo nome.
$r=$_GET['cod_cliente'];
mysql_query("delete from clientes where CLI_COD='$r'") or die("erro ao deletar");

Tem outras maneiras de se fazer o que você quer...

Eu te aconselho escolher a primeira alternativa, pois não é certo ter varios inputs do tipo text com o mesmo name e você pode acabar caindo nesse problema novamente.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...